Quando precisa parar um contêiner Docker em execução, é importante fazê-lo de forma segura e controlada para evitar problemas potenciais. O Docker fornece vários comandos e opções para parar contêineres graciosamente.
Parando um Contêiner
Para parar um contêiner Docker em execução, você pode usar o comando docker stop. Este comando envia um sinal SIGTERM para o processo principal do contêiner, dando-lhe a oportunidade de realizar quaisquer tarefas de limpeza ou desligamento necessárias antes que o contêiner seja parado.
docker stop <nome_ou_id_do_contêiner>
Por padrão, o comando docker stop aguardará até 10 segundos para que o contêiner pare. Se o contêiner não parar dentro desse tempo, o Docker enviará um sinal SIGKILL para forçar a parada do contêiner.
Desligamento Gracioso
Para dar mais tempo ao contêiner para realizar um desligamento gracioso, você pode usar a opção -t ou --time com o comando docker stop. Esta opção especifica o número de segundos para aguardar antes de enviar o sinal SIGKILL.
docker stop -t 60 <nome_ou_id_do_contêiner>
Neste exemplo, o Docker aguardará até 60 segundos para que o contêiner pare antes de enviar o sinal SIGKILL.
Parando Múltiplos Contêineres
Se precisar parar vários contêineres de uma só vez, você pode usar o comando docker stop com uma lista de nomes ou IDs de contêiner, separados por espaços.
docker stop <nome_ou_id_do_contêiner1> <nome_ou_id_do_contêiner2> <nome_ou_id_do_contêiner3>
Isso parará todos os contêineres especificados na ordem em que são listados.
Parando Contêineres Automaticamente
Você também pode configurar o Docker para parar automaticamente os contêineres quando o sistema hospedeiro é desligado ou reiniciado. Isso pode ser feito definindo a opção --restart ao iniciar o contêiner.
docker run --restart=always <nome_da_imagem>
A opção --restart=always garante que o contêiner será reiniciado automaticamente se parar por qualquer motivo, incluindo desligamento ou reinicialização do sistema.
Seguindo essas práticas recomendadas para parar contêineres Docker, você pode garantir que suas aplicações sejam desligadas graciosamente, minimizando o risco de perda de dados ou outros problemas.