Um processo por container
Cada contêiner Docker deve executar apenas um processo. Isso facilita o gerenciamento e o diagnóstico dos contêineres. Além disso, executar vários processos em um único contêiner pode tornar a imagem mais complexa e difícil de manter1.
Processo Único por Contêiner:
Em um ambiente ideal, cada contêiner Docker deve executar apenas um processo. Isso facilita o gerenciamento e a depuração.
No entanto, às vezes é impossível executar apenas um processo. Por exemplo, além do processo principal do contêiner, também podem ser executados processos de monitoramento ou geração de logs.
Quando um contêiner é iniciado, há um processo PID 1 em execução dentro dele. Esse processo é chamado de init process e serve como o ponto de partida para outros processos filhos criados no contêiner1.
O Processo Init:
Quando você liga um servidor Linux, após a etapa da BIOS/boot-loader, o kernel do Linux é carregado.
O kernel inicia o processo init, que é responsável por iniciar outros processos e gerenciar o sistema.
Da mesma forma, em contêineres Docker, o processo init é o processo número 1 dentro do contêiner.
Sinais e Processamento:
Quando um processo recebe um sinal, ele pode:
Ignorar: Alguns sinais podem ser ignorados, mas não os sinais SIGKILL e SIGSTOP.
Capturar: O processo pode registrar um manipulador para esse sinal (exceto para SIGKILL e SIGSTOP).
Comportamento Padrão: O Linux define um comportamento padrão para cada sinal.
O comando
kill -9 1envia um sinal SIGKILL para o processo 1 (init). No entanto, o processo init não pode ser morto dessa maneira1.
Lembre-se de que a prática de executar apenas um processo por contêiner ajuda a manter a simplicidade e a segurança.
Laboratório

Last updated