Dockerize seu App: Consistência e Performance em 3 Minutos
- Luis Felipe

- 27 de abr.
- 3 min de leitura
Atualizado: 28 de abr.
"Na minha máquina funciona!" – Se você já ouviu isso, sabe que o problema geralmente não é o código, mas o ambiente. Normalmente se usa o Docker para garantir que o software rode exatamente igual em qualquer lugar. Mas por que ele se tornou o padrão da indústria?
O que é o Docker e por que ele é melhor?
Muitos confundem Docker com Máquinas Virtuais (VMs), mas a diferença de performance é brutal:
Máquina Virtual (VM): Roda um sistema operacional (SO) completo para cada aplicação. Isso consome gigabytes de RAM e muito processamento, pois cada VM simula até o hardware.
Docker: Ele compartilha o núcleo (kernel) do sistema operacional da sua máquina. O Docker apenas isola o processo da aplicação.
Resultado: Enquanto uma VM demora minutos para ligar e "come" a memória do seu PC, um container Docker sobe em milissegundos e gasta apenas o que a aplicação realmente precisa.
1. Entendendo os Conceitos: Imagem vs. Container
Antes do código, entenda o fluxo:
Dockerfile: É um arquivo de texto contendo todas as instruções necessárias para criar o seu ambiente. Pense nele como uma "receita de bolo" detalhada: ele diz ao Docker qual sistema usar, quais arquivos copiar e quais comandos executar.
Imagem (O Build): Quando você "builda", o Docker transforma a receita em um pacote estático e imutável chamado imagem. A imagem é o "bolo pronto", mas que ainda está na vitrine (não foi consumido/executado). Importante: O Docker não espelha o seu código em tempo real por padrão. Se você mudar uma vírgula no seu código fonte (como em um arquivo .js ou .html), você precisa buildar a imagem novamente para que essa mudança seja "assada" dentro dela.
Container: É quando você tira o bolo da vitrine e o serve. Você pode servir vários pedaços ao mesmo tempo; é a imagem em execução. Você pode criar N containers a partir de uma única imagem (ex: rodar 5 instâncias da mesma API em portas diferentes).
2. O Exemplo: Aplicação Node.js
Para este tutorial, utilizaremos como exemplo uma aplicação simples em Node.js. O primeiro passo é garantir que temos os arquivos do projeto (como o app.js para o código e o package.json para as dependências) na mesma pasta onde criaremos nosso Dockerfile.

3. O Dockerfile (A Receita)
Crie o arquivo Dockerfile na raiz:

4. Build e Run: Transformando Código em Container
Agora, vamos ao terminal.
Passo A: O Build Aqui o Docker lê sua receita e cria a imagem. Lembre-se: alterou o código? Rode o build de novo!
No terminal, execute o comando abaixo:
docker build -t amora-app:v1 .Entendendo o comando:
docker build→Comando base para criar uma imagem.
-t → Abreviação de "tag", serve para dar um nome e uma versão à imagem.
amora-app → O nome que escolhemos para a nossa imagem (você pode alterar para o nome do seu projeto).
:v1 → A versão da imagem. Útil para controle de alterações.
. → Indica que o Docker deve procurar o arquivo Dockerfile na pasta atual.
Passo B: O Run (Container) Agora instanciamos a imagem. Vamos mapear a porta 8080 do seu PC para a 3000 do container:
docker run -d -p 8080:3000 --name meu-primeiro-container amora-app:v1O -d roda em "background", liberando seu terminal.


5. Resultado e Verificação
Abra o navegador em localhost:8080. Se quiser ver que o Docker realmente isola as coisas, você pode rodar outro container na porta 8081 usando a mesma imagem!

Conclusão
O Docker não é apenas sobre "funcionar em todo lugar", é sobre eficiência de recursos e agilidade no deploy. Agora que você tem sua imagem pronta, o próximo passo é levá-la para a nuvem.
Confira o código e o tutorial completo no meu repositório: https://github.com/Luis-03-2004/docker-guide


Comentários