Pular para o conteúdo

Comandos Docker

Comandos e fluxos de trabalho abrangentes do Docker para conteinerização em todas as plataformas.

Comandos Básicos

ComandoDescrição
docker --versionMostrar versão do Docker
docker infoExibir informações do sistema
docker helpMostrar ajuda para comandos Docker
docker imagesListar todas as imagens
docker psListar contêineres em execução
docker ps -aListar todos os containers (em execução e parados)
docker pull <image>Puxar uma imagem do registry
docker run <image>Executar um contêiner a partir de uma imagem
docker stop <container>Parar um container em execução
docker start <container>Iniciar um container parado
docker restart <container>Reiniciar um container
docker rm <container>Remover um container
docker rmi <image>Remover uma imagem

Gerenciamento de Contêineres

ComandoDescrição
docker run -d <image>Executar container em modo destacado
docker run -it <image>Executar container interativamente
docker run -p 8080:80 <image>Mapear porta 8080 para porta do container 80
docker run -v /host:/container <image>Montar volume
docker run --name <name> <image>Executar container com nome personalizado
docker exec -it <container> bashExecute bash no contêiner em execução
docker logs <container>Visualizar logs do container
docker logs -f <container>Seguir logs de contêiner
docker inspect <container>Inspecionar detalhes do container
docker statsMostrar uso de recursos do container
docker top <container>Mostrar processos em execução no container

Gerenciamento de Imagens

ComandoDescrição
docker build -t <name> .Construir imagem a partir do Dockerfile
docker build -t <name>:<tag> .Construir imagem com tag
docker tag <image> <new-name>Marcar uma imagem
docker push <image>Enviar imagem para o registro
docker save <image> > file.tarSalvar imagem para arquivo tar
docker load < file.tarCarregar imagem de arquivo tar
docker history <image>Mostrar histórico de imagens
docker search <term>Procurar imagens no registry

Docker Compose

ComandoDescrição
docker-compose upIniciar serviços definidos no arquivo compose
docker-compose up -dIniciar serviços em modo desanexado
docker-compose downParar e remover containers
docker-compose buildConstruir ou reconstruir serviços
docker-compose logsVisualizar logs de todos os serviços
docker-compose psListar containers
docker-compose exec <service> bashExecutar comando no serviço
docker-compose pullPuxar imagens mais recentes
docker-compose restartReiniciar serviços

Gerenciamento de Redes

ComandoDescrição
docker network lsListar redes
docker network create <name>Criar uma rede
docker network rm <name>Remover uma rede
docker network inspect <name>Inspecionar detalhes da rede
docker run --network <name> <image>Executar container em rede específica

Gerenciamento de Volumes

ComandoDescrição
docker volume lsListar volumes
docker volume create <name>Criar um volume
docker volume rm <name>Remover o volume
docker volume inspect <name>Inspecionar detalhes do volume
docker volume pruneRemover volumes não utilizados

Fluxos de Trabalho Comuns

Fluxo de Trabalho de Desenvolvimento

# Build and run application
docker build -t myapp .
docker run -p 3000:3000 myapp

# Development with volume mounting
docker run -p 3000:3000 -v $(pwd):/app myapp

# Using Docker Compose for development
docker-compose up --build

Implantação em Produção

# Build production image
docker build -t myapp:prod .

# Tag for registry
docker tag myapp:prod registry.com/myapp:latest

# Push to registry
docker push registry.com/myapp:latest

# Deploy on production server
docker pull registry.com/myapp:latest
docker run -d -p 80:3000 --name myapp-prod registry.com/myapp:latest

Depuração de Contêineres

# Check container logs
docker logs -f container-name

# Execute shell in running container
docker exec -it container-name bash

# Inspect container configuration
docker inspect container-name

# Check resource usage
docker stats container-name

Melhores Práticas

Otimização de Dockerfile

  • Use builds multi-estágio para reduzir o tamanho da imagem
  • Aproveite o cache de build ordenando instruções corretamente
  • Use tags de imagem base específicas, evitelatest
  • Minimize o número de camadas
  • Use.dockerignorepara excluir arquivos desnecessários

Segurança

  • Execute contêineres como usuário não-root
  • Use imagens base oficiais sempre que possível
  • Atualize regularmente as imagens base
  • Escaneie imagens em busca de vulnerabilidades
  • Limite recursos do contêiner (CPU, memória)

Desempenho

  • Use imagens base apropriadas (alpine para menor tamanho)
  • Otimize o cache de camadas
  • Use verificações de saúde para contêineres
  • Monitore o uso de recursos dos contêineres
  • Use volumes para dados persistentes

Implantação em Produção

  • Use ferramentas de orquestração (Docker Swarm, Kubernetes)
  • Implemente registro de logs e monitoramento adequados
  • Use gerenciamento de segredos para dados sensíveis
  • Configure backups automatizados
  • Implemente atualizações progressivas