🌐 Detecting your location…
📢 Advertisement — Configure AdSense in Appearance → Customize → AdSense Settings

Guia completo do Docker 2026: contêineres, composição e práticas recomendadas

⏱️2 min read  ·  431 words
Docker Complete Guide 2026: Containers, Compose and Best Practices

Dockeré a maneira padrão de construir, enviar e executar aplicativos em 2026. Cada plataforma de nuvem – AWS, GCP, Azure – executa contêineres Docker. Este guia cobre o Docker desde a primeira instalação até aplicativos de vários contêineres com Docker Compose.

Instale o Docker

# Ubuntu / Debian
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker

# Verify
docker --version
docker run hello-world

Conceitos Básicos

  • Imagem:Blueprint para um contêiner (somente leitura)
  • Contêiner:Executando instância de uma imagem
  • Arquivo Docker:Instruções para construir uma imagem
  • Cadastro:Armazenamento de imagens (Docker Hub, ECR, GCR)

Seu primeiro Dockerfile

# Dockerfile
FROM python:3.12-slim

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

EXPOSE 8000

CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]

# Build image
docker build -t myapp:latest .

# Run container
docker run -d -p 8000:8000 --name myapp myapp:latest

# View logs
docker logs myapp

# Stop & remove
docker stop myapp && docker rm myapp

Comandos essenciais do Docker

# List running containers
docker ps

# List all containers (including stopped)
docker ps -a

# List images
docker images

# Execute command inside container
docker exec -it myapp /bin/bash

# Copy file from container
docker cp myapp:/app/output.log ./output.log

# Remove all stopped containers + unused images
docker system prune -af

Volumes Docker (dados persistentes)

# Named volume — data persists between container restarts
docker run -d \
  -v postgres_data:/var/lib/postgresql/data \
  -e POSTGRES_PASSWORD=secret \
  --name postgres \
  postgres:16

# Bind mount — mount host directory
docker run -d \
  -v $(pwd)/data:/app/data \
  myapp:latest

Docker Compose — Aplicativos multicontêineres

# docker-compose.yml
services:
  web:
    build: .
    ports:
      - "8000:8000"
    environment:
      - DATABASE_URL=postgresql://postgres:secret@db:5432/mydb
    depends_on:
      - db
    volumes:
      - .:/app

  db:
    image: postgres:16
    environment:
      POSTGRES_PASSWORD: secret
      POSTGRES_DB: mydb
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:

# Start all services
docker compose up -d

# View logs
docker compose logs -f

# Stop everything
docker compose down

# Rebuild and restart
docker compose up -d --build

Construções em vários estágios (imagens menores)

# Stage 1: Build
FROM node:22-alpine AS builder
WORKDIR /app
COPY package*.json .
RUN npm ci
COPY . .
RUN npm run build

# Stage 2: Production (no dev dependencies)
FROM node:22-alpine AS production
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
EXPOSE 3000
CMD ["node", "dist/index.js"]

Conclusão

O Docker elimina o problema de “funciona na minha máquina”. Aprenda os fundamentos do Dockerfile, domine o Docker Compose para desenvolvimento local e você enviará aplicativos consistentes do laptop para a nuvem sem surpresas.

✍️ Leave a Comment

Your email address will not be published. Required fields are marked *

🌐 Read in:🇬🇧 English🇩🇪 Deutsch🇧🇷 Português🇸🇦 العربية🇮🇳 हिन्दी🇧🇩 বাংলা