Métodos de Término de Contêineres
Visão Geral do Término de Contêineres
O término de contêineres é um processo crucial no gerenciamento de contêineres Docker. Existem diferentes métodos para parar e remover contêineres com base em requisitos e cenários específicos.
Métodos de Término Padrão
1. Parada Graciosa (docker stop)
## Parar um contêiner graciosamente
docker stop nome_do_contêiner
## Parar múltiplos contêineres
docker stop contêiner1 contêiner2 contêiner3
## Terminar um contêiner forçadamente
docker kill nome_do_contêiner
## Enviar sinais específicos
docker kill -s SIGTERM nome_do_contêiner
Hierarquia de Sinais de Término
flowchart TD
A[SIGTERM - Parada Graciosa] --> B[SIGKILL - Término Forçado]
B --> C[Remoção do Contêiner]
Sinais de Término Explicados
| Sinal |
Nome |
Descrição |
Ação Padrão |
| SIGTERM |
Terminate |
Pedido de parada graciosa |
Terminar processo |
| SIGKILL |
Kill |
Término imediato |
Finalizar processo forçadamente |
| SIGSTOP |
Stop |
Pausar a execução do processo |
Suspender processo |
Técnicas Avançadas de Término
Término em Lote de Contêineres
## Parar todos os contêineres em execução
docker stop $(docker ps -q)
## Remover todos os contêineres parados
docker container prune
Término Condicional
## Parar contêineres com mais de uma hora
docker ps -f "status=running" -f "before=1h" -q | xargs docker stop
Boas Práticas
- Utilize
docker stop para paradas graciosas
- Implemente tratamento adequado de sinais nas aplicações
- Utilize as ferramentas de gerenciamento de contêineres LabEx para um término eficiente
- Monitore o ciclo de vida e o desempenho do contêiner
Tratamento de Erros e Log
## Verificar logs de término do contêiner
docker logs nome_do_contêiner
## Inspecionar o status de saída do contêiner
docker inspect --format='{{.State.ExitCode}}' nome_do_contêiner
Fluxo de Trabalho de Término
stateDiagram-v2
[*] --> Running: Contêiner Ativo
Running --> Stopping: docker stop/kill
Stopping --> Stopped: Processo Terminado
Stopped --> Removed: docker rm
Removed --> [*]
Compreendendo esses métodos de término, os desenvolvedores podem gerenciar eficazmente os ciclos de vida dos contêineres e garantir uma implantação e escalonamento suaves das aplicações.