Skip to content

Comandos Docker explicados

Os comandos Docker usados no dia a dia, agrupados por função: compilar e mover imagens, arrancar e parar contentores, afinar o docker run com flags, ler logs e estatísticas, chegar dentro de um contentor, copiar ficheiros e falar com registries, gerir volumes e redes, comandar o Compose e recuperar espaço em disco.

O Docker divide-se em dois objetos: imagens (o modelo apenas de leitura) e contentores (uma instância em execução de uma imagem). Compila ou descarrega uma imagem, executa-a como contentor, inspeciona o que se passa e depois limpa. A maioria usa também o Compose para declarar aplicações multi-contentor. Todos os comandos abaixo têm forma curta; mostra-se a forma longa onde é a mais clara.

Tabela de referência · 75 entradas
75 of 75 rows
Compilar
Compila uma imagem a partir de um Dockerfile.docker build -t app:1.0 .
Compila a imagem de novo do início, ignorando as camadas em cache.docker build --no-cache -t app:1.0 .
Compila apenas até uma fase nomeada num Dockerfile multi-stage.docker build --target deps -t app:deps .
Compila imagens através do plugin buildx, que aciona o BuildKit.docker buildx build -t app:1.0 .
Compila uma imagem para várias arquiteturas de CPU.docker buildx build --platform linux/amd64,linux/arm64 -t app:1.0 --push .
Imagens
Descarrega uma imagem de um registry.docker pull node:20
Lista as imagens guardadas localmente.docker images
Cria uma nova tag que aponta para a mesma imagem.docker tag app:1.0 app:latest
Remove uma ou mais imagens locais.docker rmi app:1.0
Ciclo de vida do contentor
Cria e arranca um contentor a partir de uma imagem.docker run -p 8080:3000 app
Cria um contentor sem o arrancar.docker create --name web app
Arranca um contentor que estava parado.docker start web
Para um contentor em execução de forma graciosa.docker stop web
Para e arranca um contentor num único passo.docker restart web
Força a paragem imediata de um contentor, sem aguardar encerramento gracioso.docker kill web
Congela todos os processos dentro de um contentor.docker pause web
Descongela os processos de um contentor em pausa.docker unpause web
Bloqueia até um contentor parar e imprime o seu código de saída.docker wait web
Lista os contentores em execução; acrescente -a para incluir os parados.docker ps -a
Dá um novo nome a um contentor existente.docker rename web web-old
Altera limites de recursos ou a política de reinício de um contentor.docker update --restart=unless-stopped web
Remove um contentor parado.docker rm web
Flags de execução
Executa o contentor em segundo plano e imprime o seu ID.docker run -d -p 8080:80 app
Publica um port do contentor num port do host.docker run -p 8080:80 app
Monta uma pasta do host ou um volume nomeado dentro do contentor.docker run -v app-data:/data app
Define uma variável de ambiente no contentor.docker run -e MODE=prod app
Dá ao contentor um nome fixo para usar em comandos seguintes.docker run --name web app
Elimina o contentor quando este termina.docker run --rm app
Arranca o contentor numa rede específica.docker run --network net app
Diz ao Docker quando reiniciar o contentor.docker run --restart unless-stopped app
Aloca um terminal e mantém o stdin aberto para uma sessão interativa.docker run -it alpine sh
Substitui o entrypoint da imagem pelo seu próprio comando.docker run --entrypoint sh app
Limita a memória ou a fatia de CPU que o contentor pode usar.docker run --memory 512m --cpus 0.5 app
Inspeção
Lê o stdout e stderr de um contentor; -f segue a saída nova à medida que chega.docker logs -f web
Mostra a configuração e o estado de baixo nível de um contentor ou imagem.docker inspect web
Extrai um campo do inspect com um template Go.docker inspect --format '{{.State.Status}}' web
Lista os ports do host que um contentor publica.docker port web
Mostra os ficheiros que um contentor alterou face à sua imagem.docker diff web
CPU, memória e rede em direto para os contentores em execução.docker stats
Lista os processos em execução dentro de um contentor.docker top web
Transmite em fluxo os eventos do daemon Docker à medida que acontecem.docker events --filter type=container
Mostra o espaço em disco usado por imagens, contentores, volumes e cache.docker system df
Mostra as definições e o estado do Docker ao nível do sistema.docker info
Exec e attach
Executa um comando dentro de um contentor em execução.docker exec -it web sh
Liga o seu terminal ao processo principal de um contentor.docker attach web
Ficheiros e registry
Copia ficheiros entre um contentor e o sistema de ficheiros local.docker cp web:/app/logs ./logs
Inicia sessão num registry a partir da CLI.docker login
Termina a sessão de um registry.docker logout
Envia uma imagem local para um registry.docker push user/app:1.0
Escreve uma imagem para um ficheiro tar.docker save -o app.tar app:1.0
Lê uma imagem de um ficheiro tar.docker load -i app.tar
Escreve o sistema de ficheiros de um contentor para um ficheiro tar.docker export web > web.tar
Cria uma imagem a partir de um sistema de ficheiros tar.docker import web.tar web:snap
Transforma o estado atual de um contentor numa nova imagem.docker commit web app:snap
Volumes
Cria um volume nomeado para dados persistentes.docker volume create data
Lista os volumes.docker volume ls
Remove um volume.docker volume rm data
Redes
Lista as redes.docker network ls
Cria uma rede para que os contentores se consigam alcançar.docker network create net
Liga um contentor em execução a uma rede.docker network connect net web
Compose
Compila, (re)cria e arranca os serviços do compose.yaml; -d deixa-os a correr em segundo plano.docker compose up -d
Arranca os serviços e recompila primeiro as suas imagens.docker compose up --build -d
Executa um comando dentro do contentor de um serviço em execução.docker compose exec api sh
Segue os logs de um ou mais serviços.docker compose logs -f api
Lista os contentores de serviços geridos pelo Compose.docker compose ps
Para os contentores de serviços sem os remover.docker compose stop
Reinicia os contentores de serviços.docker compose restart api
Para e remove contentores e redes; -v remove também os volumes nomeados.docker compose down
Mostra a configuração final do Compose após fusões e substituição de variáveis.docker compose config
Limpeza
Remove contentores parados, imagens pendentes e redes não usadas; -a --volumes remove também imagens e volumes não usados.docker system prune -af
Remove todos os contentores parados.docker container prune
Remove imagens não usadas ou pendentes.docker image prune -a
Remove volumes que nenhum contentor usa.docker volume prune
Remove redes que nenhum contentor usa.docker network prune
Remove as camadas de compilação em cache.docker builder prune