Docker Containerization explicado de forma simples (com diagramas e código real)
Docker Containerization: o essencial em um artigo — código real, diagramas e etapas concretas, extraídos de um curso de 41 lições.
Um guia que vai direto ao ponto: Docker Containerization dissecado com diagramas, exemplos concretos e comandos testados. Tudo vem de um curso estruturado de 12 capítulos — aqui está o melhor.
- Instalar uma VM UBUNTU
- Descobrir docker
- Comandos essenciais
- Dockerfile
- Containerizar Flask
Anatomia de um Dockerfile
# Arrêter TOUS les conteneurs en cours docker stop $(docker ps -a -q) # Supprimer TOUS les conteneurs docker rm $(docker ps -a -q) # Supprimer TOUTES les images (optionnel) docker rmi $(docker images -q) # Forcer la suppression si une image résiste docker rmi -f $(docker images -q)
-f (force) remove até as imagens usadas por contêineres.Objetivos pedagógicos
O que é um Dockerfile?
Um Dockerfile é um arquivo de texto que contém uma série de instruções para construir uma imagem Docker. É como uma receita de cozinha: cada instrução é uma etapa que transforma a imagem base em sua imagem personalizada.
- FROM = Os ingredientes básicos (farinha, manteiga...)
- WORKDIR = A bancada de trabalho (a mesa da cozinha)
- COPY = Adicionar ingredientes (açúcar, ovos...)
- RUN = Preparar (misturar, cozinhar...)
- EXPOSE = Indicar a apresentação (o prato de servir)
- CMD = Servir o prato (o comando final)
Imagem base
O Dockerfile sempre parte de uma imagem existente (FROM). Nunca se começa do zero.
Instruções
Cada linha é uma instrução que modifica a imagem: copiar arquivos, instalar pacotes, configurar...
Imagem final
O resultado é uma imagem personalizada pronta para ser executada com docker run.
As instruções principais
FROM – Imagem base
Primeira instrução de um Dockerfile. Ela define a imagem inicial sobre a qual se constrói.
FROM python:3.11-slim
slim (versão leve, sem ferramentas desnecessárias). Isso nos dá um sistema Linux com Python 3.11 já instalado.WORKDIR – Diretório de trabalho
Define o diretório de trabalho dentro do contêiner. Todas as instruções seguintes (COPY, RUN, CMD) serão executadas nesse diretório.
WORKDIR /app
WORKDIR em vez de RUN cd /app. WORKDIR cria o diretório automaticamente se ele não existir e persiste para todas as instruções seguintes.COPY – Copiar arquivos
Copia arquivos da sua máquina (o «contexto de build») para o contêiner.
COPY . .
O primeiro . = o diretório atual na sua máquina. O segundo . = o WORKDIR no contêiner (/app).
Layers, cache e boas práticas
# Arrêter TOUS les conteneurs en cours docker stop $(docker ps -a -q) # Supprimer TOUS les conteneurs docker rm $(docker ps -a -q) # Supprimer TOUTES les images (optionnel) docker rmi $(docker images -q) # Forcer la suppression si une image résiste docker rmi -f $(docker images -q)
-f (force) remove até as imagens usadas por contêineres.Objetivos pedagógicos
Cada instrução = 1 layer
Quando o Docker executa um Dockerfile, cada instrução (FROM, RUN, COPY, etc.) cria um novo layer (camada). Uma imagem Docker é uma pilha de layers empilhados uns sobre os outros.
FROM python:3.11-slim ← Layer 1 (image de base) WORKDIR /app ← Layer 2 COPY requirements.txt . ← Layer 3 RUN pip install ... ← Layer 4 COPY . . ← Layer 5 CMD ["python", "app.py"] ← Layer 6 (métadonnées)
- Compartilhar layers comuns entre várias imagens (ex: todas as imagens Python compartilham o mesmo layer base)
- Colocar em cache os layers para acelerar os builds
- Reduzir o espaço em disco armazenando cada layer apenas uma vez
O cache do Docker
O Docker coloca em cache cada layer. Durante um rebuild, o Docker verifica se um layer mudou. Se nada mudou, ele reutiliza o layer em cache em vez de reconstruí-lo.
Ordem ruim vs ordem boa
RUIM: requirements depois de COPY . .
FROM python:3.11-slim WORKDIR /app COPY . . ← Tout le code source RUN pip install -r requirements.txt ← Installation des dépendances CMD ["python", "app.py"]
app.py), o layer COPY . . muda. Como ele está antes de RUN pip install, o Docker precisa reinstalar todas as dependências a cada build. Em um projeto com muitas dependências, isso pode levar vários minutos.BOM: requirements antes de COPY . .
FROM python:3.11-slim WORKDIR /app COPY requirements.txt . ← Seulement les dépendances RUN pip install -r requirements.txt ← Installation (caché si requirements.txt n'a pas changé) COPY . . ← Le code source (change souvent) CMD ["python", "app.py"]
COPY . . muda. As dependências (pip install) ficam em cache e não são reinstaladas. O build passa de vários minutos para poucos segundos.Ordem ruim
Ordem boa
Demonstração: observar o cache
Etapa 1: Criar o projeto
mkdir ~/demo-cache cd ~/demo-cache
Crie requirements.txt:
touch requirements.txt nano requirements.txt
Construir e executar sua primeira imagem
.dockerignore.# Arrêter TOUS les conteneurs en cours docker stop $(docker ps -a -q) # Supprimer TOUS les conteneurs docker rm $(docker ps -a -q) # Supprimer TOUTES les images (optionnel) docker rmi $(docker images -q) # Forcer la suppression si une image résiste docker rmi -f $(docker images -q)
-f (force) remove até as imagens usadas por contêineres.Objetivos pedagógicos
Criar o projeto
Etapa 1: Criar a pasta do projeto
mkdir ~/mon-premier-docker cd ~/mon-premier-docker
Etapa 2: Criar o script Python
Crie um arquivo hello.py:
touch hello.py nano hello.py
Cole este conteúdo e salve (Ctrl + O, Enter, Ctrl + X):
print("Bonjour depuis Docker !")echo 'print("Bonjour depuis Docker !")' > hello.pyVerifique o conteúdo do arquivo:
cat hello.py
Etapa 3: Criar o Dockerfile
Crie um arquivo chamado Dockerfile (sem extensão):
touch Dockerfile nano Dockerfile
Cole este conteúdo e salve (Ctrl + O, Enter, Ctrl + X):
FROM python:3.11-slim WORKDIR /app COPY hello.py . CMD ["python", "hello.py"]
Este artigo cobre os trechos mais úteis — o curso completo Docker Containerization (12 capítulos, 41 lições, exercícios corrigidos e projeto final) leva você até o fim.
./acceder-au-cours-complet cours gratuit : Maîtriser Claude CodeFAQ
Quanto tempo para aprender Docker Containerization?
É preciso ter pré-requisitos?
Por onde começar na prática?
📬 Quer receber este tipo de guia toda semana? Inscreva-se gratuitamente — código real, zero enrolação.