Conteúdo
Tutorial de comandos Docker stop, start, restart e kill: pare e reinicie contêineres
docker stop, start, restart, kill, pause e unpause controlam o estado de execução dos contêineres; veja o fluxo completo do ciclo de vida em Ciclo de vida do contêiner.
Sintaxe
docker stop [opções] contêiner [contêiner...]
docker start [opções] contêiner [contêiner...]
docker restart [opções] contêiner [contêiner...]
docker kill [opções] contêiner [contêiner...]
docker pause contêiner [contêiner...]
docker unpause contêiner [contêiner...]
Opções
| Comando | Opção | Descrição |
|---|---|---|
docker stop | -s, --signal string | Sinal enviado ao contêiner |
docker stop | -t, --timeout int | Quantos segundos esperar antes de encerrar o contêiner à força |
docker start | -a, --attach | Anexa ao STDOUT/STDERR do contêiner e encaminha sinais |
docker start | --checkpoint string | Restaura a partir do checkpoint especificado |
docker start | --checkpoint-dir string | Usa um diretório personalizado para armazenar checkpoints |
docker start | --detach-keys string | Substitui a combinação de teclas usada para sair do modo de anexação |
docker start | -i, --interactive | Anexa ao STDIN do contêiner |
docker restart | -s, --signal string | Sinal enviado ao contêiner |
docker restart | -t, --timeout int | Quantos segundos esperar antes de encerrar o contêiner à força |
docker kill | -s, --signal string | Sinal enviado ao contêiner |
A descrição de pause e unpause não lista outras opções. Também é possível chamar stop, start, restart, kill e pause como subcomandos de docker container.
Exemplos
Tempo de espera e estado de saída de stop
$ time docker stop web
web
real 0m 0.50s
user 0m 0.00s
sys 0m 0.01s
$ time docker stop sleeper
sleeper
real 0m 10.44s
user 0m 0.01s
sys 0m 0.01s
$ docker ps -a --format 'table {{.Names}}\t{{.Status}}'
NAMES STATUS
sleeper Exited (137) 1 second ago
web Exited (0) 12 seconds ago
uses-redis Up 51 seconds
registry Up About a minute
webparou após 0.50 segundo, com o estadoExited (0): o nginx encerrou normalmente ao receber SIGTERM.sleeperesperou 10.44 segundos e ficou com o estadoExited (137):sleepé o PID 1 dentro do contêiner e não tratou SIGTERM. O Docker esperou os 10 segundos padrão e então enviou SIGKILL (137 = 128 + 9). Consulte a explicação sobre PID 1 em Ciclo de vida do contêiner.- A opção
-t, --timeoutdedocker stop --helpdefine quantos segundos esperar antes de encerrar o contêiner à força; este exemplo mostra a diferença entre o tempo padrão e o encerramento forçado. docker ps -alista os contêineres parados;uses-rediseregistrycontinuam em execução.
start, restart e kill
$ docker start web
web
$ docker restart -t 2 web
web
$ docker kill sleeper
Error response from daemon: cannot kill container: sleeper: container ebcd31ea947204593383614f0fa2b0b9baba719e4858042e8120b3d544468f20 is not running
$ docker start sleeper && docker kill sleeper
sleeper
sleeper
$ docker ps -a --format 'table {{.Names}}\t{{.Status}}'
NAMES STATUS
sleeper Exited (137) Less than a second ago
web Up 2 seconds
uses-redis Up 54 seconds
registry Up About a minute
docker startinicia owebparado;docker restart -t 2reinicia o contêiner com tempo limite de 2 segundos.docker kill sleeperfalha porque o contêiner está parado; a mensagem de erro informa que ele não está em execução. Primeiro, execute start e depois kill para que os dois comandos funcionem.- Depois de kill,
sleeperaparece comoExited (137)ewebaparece comoUp.
pause e unpause
$ docker pause web
web
$ docker ps --format 'table {{.Names}}\t{{.Status}}'
NAMES STATUS
web Up 2 seconds (Paused)
uses-redis Up 55 seconds
registry Up About a minute
$ docker exec web nginx -v
Error response from daemon: Container web is paused, unpause the container before exec
$ docker unpause web
web
docker pausepausa todos os processos dentro do contêiner; a coluna de estado mostra(Paused).- Durante a pausa,
docker execfalha e a mensagem de erro pede que você tire o contêiner da pausa primeiro;docker unpauseretoma a execução.
Enviar um sinal para recarregar o nginx
$ docker kill -s HUP web
web
$ docker logs --tail 3 web
2026/10/25 15:30:32 [notice] 1#1: signal 17 (SIGCHLD) received from 22
2026/10/25 15:30:32 [notice] 1#1: worker process 22 exited with code 0
2026/10/25 15:30:32 [notice] 1#1: signal 29 (SIGIO) received
$ docker kill -s HUP web2
web2
$ docker logs web2 2>&1 | grep -E 'SIGHUP|reconfiguring'
2026/10/25 15:31:00 [notice] 1#1: signal 1 (SIGHUP) received, reconfiguring
2026/10/25 15:31:00 [notice] 1#1: reconfiguring
docker kill -s HUPenvia o sinal especificado ao contêiner; aqui, o log deweb2mostra claramente que ele recebeuSIGHUPe está recarregando.docker logs --tail 3limita a exibição às três linhas mais recentes; no outro exemplo, o stderr é combinado com o stdout egrepfiltra as linhas do log.
Nome de contêiner inexistente
$ docker stop nosuch
Error response from daemon: No such container: nosuch
Se o nome do contêiner especificado não existir, o Docker retornará No such container.
Capítulos relacionados
- Ciclo de vida do contêiner
- Comando docker ps: veja o estado dos contêineres
- Comando docker exec: execute comandos dentro de um contêiner em execução
- Comando docker logs: veja os logs do contêiner
Exercícios
Exercício: o contêiner sleeper está parado. Inicie-o e encerre-o à força imediatamente; por fim, liste o nome e o estado de todos os contêineres.
Resposta
docker start sleeper && docker kill sleeper
docker ps -a --format 'table {{.Names}}\t{{.Status}}'
Perguntas frequentes
Por que docker stop sleeper demora cerca de 10 segundos?
Desta vez, docker stop sleeper levou 10.44 segundos e o estado depois foi Exited (137); docker stop --help explica que -t, --timeout define quantos segundos esperar antes de encerrar o contêiner à força.
docker kill pode ser usado em um contêiner parado?
Não. Ao executar docker kill no sleeper parado, o Docker informa que o contêiner não está em execução; primeiro, inicie-o com docker start sleeper para então usar kill.
Ainda é possível usar docker exec depois de pausar um contêiner?
Não. No exemplo, docker exec web nginx -v informa que o contêiner está pausado; primeiro, é preciso executar docker unpause web.
Como recarregar a configuração do nginx sem parar o contêiner?
Envie HUP ao contêiner: docker kill -s HUP web2. O log mostra SIGHUP received, reconfiguring.
Atualizado 26 de outubro de 2026