top of page
  • Foto do escritorMarcelo Santos

Introdução ao Docker


Foto de Andy Li na Unsplash


Você já ouviu falar de Docker? Se não, é hora de conhecer essa ferramenta incrível que está revolucionando o desenvolvimento de software! Com Docker, você pode tornar seu fluxo de trabalho mais eficiente e suas aplicações mais consistentes. Neste post, vamos dar uma olhada no básico do Docker e como ele pode te ajudar no desenvolvimento de software. Bora que vamos?


Docker é uma plataforma de código aberto que permite criar, executar e gerenciar containers. Um dos principais benefícios é a capacidade de criar imagens de container que podem ser facilmente distribuídas e executadas em qualquer lugar. Isso permite que você desenvolva e teste sua aplicação em sua máquina local e, em seguida, implante-a em seu ambiente de produção sem se preocupar com a configuração do sistema ou dependências.

Como ilustrado na imagem acima, a principal diferença entre containers e máquinas virtuais é a forma como eles isolam recursos no sistema operacional. Uma máquina virtual (VM) cria um ambiente completamente isolado, simulando todo o hardware necessário para rodar um sistema operacional. Isso significa que cada VM tem seu próprio conjunto de recursos, como CPU, memória, armazenamento e dispositivos de rede, que são isolados das outras VMs em execução no mesmo host. Isso permite que cada VM funcione como uma máquina física independente, mas também significa que elas requerem muitos recursos de hardware.

Já um container é uma forma mais leve de isolamento de recursos, que compartilha o kernel do sistema operacional do host com outros containers. Isso significa que os containers não precisam de recursos adicionais, como uma máquina virtual, para simular um sistema operacional completo. Em vez disso, eles apenas isolam recursos como arquivos, processos e redes. Isso significa que os containers são muito menos intensivos em recursos e podem ser executados em qualquer sistema operacional que suporte o Docker.

Instalando o Docker

Existem várias maneiras de instalar o Docker, mas essas são as principais:

  1. Instalação via gerenciador de pacotes: O Docker pode ser instalado usando gerenciadores de pacotes como apt, yum, pacman, etc. para sistemas operacionais baseados em Linux.

  2. Instalação usando o instalador binário: O Docker fornece arquivos binários para instalar o Docker em sistemas operacionais baseados em Linux, MacOS e Windows.

  3. Instalação via Docker Desktop: O Docker Desktop é uma solução completa para desenvolvimento de containers, incluindo o Docker Engine, CLI, Compose, Notary e Kubernetes. Ele está disponível para Windows, MacOS e Linux.

Se você é iniciante, eu sugiro instalar utilizando o Docker Desktop, que fornece uma ótima experiência ao desenvolvedor e facilidade de configuração.

Criando a imagem de container

Para criar uma imagem de container, você usa um arquivo chamado Dockerfile. Este arquivo contém instruções que o Docker usa para construir a imagem. Por exemplo, aqui está um exemplo simples de Dockerfile para uma aplicação Node.js:


FROM node:18-alpine
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm ci
COPY . .
EXPOSE 3000
CMD ["npm", "start"] 

Como diria Freddy Krueger, vamos por partes pra entender o que está acontecendo ali:


COPY <origem> <destino>
COPY ["<origem>",... "<destino>"]RUNExecuta comandos dentro do container. 

CMD <comando> <argumentos>
CMD ["executável", "argumento1", "argumento2", ...]  

Você pode usar esse Dockerfile para construir uma imagem da sua aplicação Node.js executando o comando “docker build”.

O comando “docker build”, quando finalizado, mostrará um hash que é o ID daquela imagem. Você pode usar esse ID para iniciar um container, porém existe uma forma de dar um nome amigável a essa imagem adicionando a opção “-t” (ou “–tag”):


docker build . -t nome_da_imagem 

Em seguida, você pode usar o comando “docker run” para iniciar um container a partir da imagem construída.

Para acessar a porta exposta (3000) é necessário publicá-la para ser acessível na sua máquina local. Fazer isso é simples e pode ser feito de várias maneiras. Uma das formas mais comuns é usando o comando “docker run” com a opção “-p” (ou “–publish”):


docker run -p 3000:3000 nome_da_imagem 

Se tudo deu certo, a tua aplicação estará disponível na porta 3000 da sua máquina local.

Conclusão

Docker é uma ferramenta incrivelmente poderosa e eu diria ser essencial para qualquer equipe de desenvolvimento de software hoje.


bottom of page