Comandos e fluxos de trabalho abrangentes do Docker para conteinerização em todas as plataformas.
Comandos Básicos
| Comando | Descrição |
|---|
docker --version | Mostrar versão do Docker |
docker info | Exibir informações do sistema |
docker help | Mostrar ajuda para comandos Docker |
docker images | Listar todas as imagens |
docker ps | Listar contêineres em execução |
docker ps -a | Listar 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
| Comando | Descriçã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> bash | Execute 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 stats | Mostrar uso de recursos do container |
docker top <container> | Mostrar processos em execução no container |
Gerenciamento de Imagens
| Comando | Descriçã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.tar | Salvar imagem para arquivo tar |
docker load < file.tar | Carregar imagem de arquivo tar |
docker history <image> | Mostrar histórico de imagens |
docker search <term> | Procurar imagens no registry |
Docker Compose
| Comando | Descrição |
|---|
docker-compose up | Iniciar serviços definidos no arquivo compose |
docker-compose up -d | Iniciar serviços em modo desanexado |
docker-compose down | Parar e remover containers |
docker-compose build | Construir ou reconstruir serviços |
docker-compose logs | Visualizar logs de todos os serviços |
docker-compose ps | Listar containers |
docker-compose exec <service> bash | Executar comando no serviço |
docker-compose pull | Puxar imagens mais recentes |
docker-compose restart | Reiniciar serviços |
Gerenciamento de Redes
| Comando | Descrição |
|---|
docker network ls | Listar 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
| Comando | Descrição |
|---|
docker volume ls | Listar 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 prune | Remover 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, evite
latest
- 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