Article image
Ariosto Leal
Ariosto Leal15/08/2025 20:21
Compartilhe

🚀 Docker não é mágica, é processo! 🚀

  • #Terraform
  • #Docker
  • #Kubernetes
  • #DevOps
  • #DevSecOps

Como o Docker constrói suas imagens

🔹 Escreva o Dockerfile

🔹 O daemon baixa a base image do Docker Hub (se não existir localmente)

🔹 Executa as instruções linha por linha criando layers

🔹 Armazena a imagem final e envia para o Hub 🚀

💡 Entender esse fluxo = builds mais rápidos + imagens otimizadas!

1) Você escreve o Dockerfile

O roteiro da imagem:

FROM, RUN, COPY/ADD, WORKDIR, EXPOSE, ENTRYPOINT/CMD.

Dica: o que está no build context (a pasta do docker build) é enviado ao daemon. Use .dockerignore para não mandar arquivos desnecessários.

2) Build request para o Host

Comando típico:

docker build -t seu-usuario/minha-app:1.0 .

O cliente empacota o build context e envia para o daemon iniciar a construção.

3) Checagem da base image

O daemon verifica se a imagem base (FROM ubuntu:latest, por exemplo) já existe localmente.

  • Se não existir, faz pull do Docker Hub (ou outro registry).
  • Se for privada, é necessário estar autenticado (docker login).

4) Execução do Dockerfile linha por linha

Cada instrução gera uma layer (camada) nova:

  • RUN executa comandos em um container temporário e “commita” o resultado como nova camada.
  • COPY/ADD criam camadas com os arquivos copiados.
  • Cache: se a instrução e os arquivos de entrada não mudaram, a camada é reutilizada (build mais rápido).

5) Armazenamento da imagem no host

Ao final, o daemon monta o manifest e salva as layers no image store local.

Você vê com:

docker images
docker history seu-usuario/minha-app:1.0

6) Pedido de upload para o registry

Quando você manda:

docker push seu-usuario/minha-app:1.0

O cliente solicita ao daemon enviar a imagem (pelas tags) para o Docker Hub (ou outro registry).

7) Upload das camadas para o Docker Hub

Somente layers novas (não existentes no registry) são enviadas — isso economiza tempo e banda.

Depois, qualquer host pode fazer:

docker pull seu-usuario/minha-app:1.0

e reutilizar as mesmas layers.

💡 Boas práticas rápidas

  • Use imagens base menores (ex.: alpine, distroless quando fizer sentido).
  • .dockerignore sempre.
  • Multi-stage builds para reduzir tamanho final.
  • Pin de versões (evite latest) e use labels (LABEL maintainer=...).
  • Crie um USER não-root e adicione HEALTHCHECK quando aplicável.

📢 Curtiu o passo a passo do GIF? Salve para referência e comente: qual dica de build Docker você mais usa no dia a dia? 👇image

Compartilhe
Comentários (1)
Marcio Gil
Marcio Gil - 16/08/2025 01:07

To precisando de uma maquina virtual Linux, e to seriamente pensando em usar o Doker pra me auxiliar. Será que vai dar certo?