00 - Comandos
Docker
Lista opções do docker
docker --help
Mostra a ajuda e as opções do cliente Docker.
Verificar o daemon Docker
sudo systemctl status docker # status do serviço (Linux com systemd)
docker info # informações sobre o daemon e configuração
Use ping docker apenas se existir um host chamado docker na sua rede; não é um comando genérico para verificar o daemon.
Limpar imagens e containers que não estão em uso
Cuidado: esses comandos removem recursos e podem causar perda de dados não persistidos.
# Remove todos os containers parados
docker container prune
# Remove todas as redes sem uso por pelo menos um container
docker network prune
# Remove todas as imagens não referenciadas por containers
docker image prune
# Remove todos os volumes não referenciados por containers
docker volume prune
# Remove containers, networks, volumes e imagens não utilizados
docker system prune
# Remove tudo, inclusive imagens que não estão em uso (use com cuidado)
docker system prune -a
Containers
Criar um contêiner
Cria e executa um container a partir de uma imagem. -p mapeia portas, -it associa terminal interativo.
docker run -it --name <nome-do-container> -p <hostPort>:<containerPort> <imagem>:<tag>
# exemplo
docker run -it --name rabbitmq -p 8080:15672 -p 5672:5672 rabbitmq:3-management
# Observação: a opção legacy `--link` cria conexão entre containers, mas é geralmente desaconselhada em favor de redes customizadas.
Iniciar, parar e reiniciar o contêiner
docker start <container-id|nome>
docker stop <container-id|nome>
docker restart <container-id|nome>
Listar portas mapeadas
Mostra as portas do container mapeadas para o host.
docker port <container-id|nome>
Entrar em um container em execução (attach)
docker attach anexa seu terminal ao processo principal do container. Nem sempre fornece um shell.
docker attach <container-id|nome>
Executar um comando dentro do container (exec) e obter um shell
Use exec para abrir um shell em um container já em execução.
docker exec -it <container-id|nome> /bin/bash # quando disponível
docker exec -it <container-id|nome> sh # shell básico
Sair do contêiner sem pará-lo
Pressione CTRL+P seguido de CTRL+Q para desanexar sem parar o container.
Ver logs de um container
Segue o log do container; -f para seguir e --tail para limitar linhas iniciais.
docker logs -f --tail 500 <container-id|nome>
# exemplo
docker logs -f --tail 500 predictor-api
Remover container
# Remove um container parado; use -f para forçar (matar e remover)
docker rm <container-id|nome>
# Remover todos os containers (parados)
docker rm $(docker ps -a -q)
# Remover todos os containers (forçado)
docker rm -f $(docker ps -a -q)
Listar containers (ativos e não ativos)
docker container ls # containers em execução
docker container ls -a # todos os containers
Listar colunas específicas (ID, nome, status)
docker ps --all --format "table {{.ID}}\t{{.Names}}\t{{.Status}}" --filter=status=running
Inspecionar container
Mostra configurações detalhadas e metadados do container.
docker inspect <container-id|nome>
Ver consumo de recursos em tempo real
docker stats <container-id|nome>
Mostrar alterações feitas no container (filesystem)
docker diff <container-id|nome>
Imagens
Criar uma imagem a partir de um contêiner
Cria uma nova imagem a partir do estado atual de um container.
docker commit -a "Autor" -m "mensagem" <container-id> <nome-imagem:tag>
# exemplo
docker commit -a "Uniliva" -m "Teste msg" 1254544 uniliva/ubuntu:1.0
Remover imagem
# Remove uma imagem (por ID ou nome:tag)
docker rmi <image-id|nome:tag>
# Remove todas as imagens (cuidado)
docker rmi $(docker images -a -q)
# Forçar remoção
docker rmi -f $(docker images -a -q)
Listar imagens
docker images
Buscar uma imagem no Docker Hub
docker search <nome>
Baixar (pull) uma imagem
docker pull <imagem>:<tag>
# exemplos
docker pull debian:latest
docker pull fedora:latest
docker pull ubuntu:latest
# Se não for especificada a tag, o Docker baixa a tag `latest` por padrão.
Local onde são armazenadas as imagens
/var/lib/docker/<driver-sistema-de-arquivo>
ex:
/var/lib/docker/overlay2