AULA 57 MÓDULO 8 Docker e deploy ⏱ 55 min

O que é Docker

Container vs VM. Imagem vs container. Dockerfile: FROM, COPY, RUN, CMD. Multi-stage build.

DockercontainerimagemDockerfilemulti-stageregistry.dockerignore

O que é Docker

Docker empacota sua aplicação e todas as suas dependências em um container — uma unidade isolada e reproduzível. "Funciona na minha máquina" deixa de ser um problema.

🚢
container vs VM
VM: sistema operacional completo por aplicação (gigabytes). Container: compartilha o kernel do host, isola o processo (megabytes). Docker é como um container de navio — padrão universal, vai em qualquer navio.
🖼️ Imagem
Blueprint do container. Imutável. Versionada. Construída com Dockerfile. Armazenada no registry.
🏃 Container
Imagem em execução. Com estado. Pode ser parado/iniciado/deletado. Efêmero por design.

Dockerfile

Dockerfile é o script que define como construir a imagem. Cada instrução cria uma camada — camadas são cacheadas, tornando builds incrementais rápidos.

multi-stage build
Use builds em múltiplos estágios: stage de build tem Node + devDependencies. Stage de produção copia apenas o código compilado. Imagem final muito menor e sem ferramentas desnecessárias.
javascript
# Dockerfile — Node.js com multi-stage build

# Stage 1: instalação de dependências
FROM node:20-alpine AS deps
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production

# Stage 2: imagem final (mínima)
FROM node:20-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production

COPY --from=deps /app/node_modules ./node_modules
COPY . .

EXPOSE 3000
CMD ["node", "server.js"]

# .dockerignore — não copiar para a imagem
# node_modules
# .env
# .git
# *.test.js

# Comandos essenciais
# docker build -t minha-api:v1 .
# docker run -p 3000:3000 --env-file .env minha-api:v1
# docker push minha-api:v1
quiz · aula 57
Teste seus conhecimentos
0/3 respondidas
QUESTÃO 01
Qual é a diferença entre imagem e container Docker?
QUESTÃO 02
Por que usar multi-stage build?
QUESTÃO 03
O que é o .dockerignore?
0/3