Olho para esta captura de tela:
Estou correto em assumir que o consumo de CPU que é mostrado por /usr/bin/dockerd
é aplicável ao daemon do docker em si, não aos processos que rodam dentro dos contêineres gerenciados pelo docker? Por exemplo, o /usr/bin/clickhouse-server
processo roda dentro do contêiner, mas é mostrado como uma entrada separada na tabela.
Sim, sua suposição está correta! O uso da CPU que você está vendo
/usr/bin/dockerd
é apenas para o daemon do Docker em si, que gerencia todos os seus contêineres. Não inclui os processos em execução dentro dos contêineres.Cada processo conteinerizado, como
/usr/bin/clickhouse-server
no seu caso, é mostrado separadamente na lista porque, embora esteja sendo executado em um contêiner, ainda é um processo no sistema. Então, o uso de recursos paraclickhouse-server
é rastreado individualmente, assim como qualquer outro processo.Basicamente, quando o Docker executa um contêiner, ele usa o kernel do host para gerenciar processos. Cada processo em contêiner é executado em seu próprio namespace e é tratado como outros processos pelo sistema host, e é por isso que ferramentas como
top
oups
podem vê-los. Esses processos têm PIDs separados dentro do contêiner e no host, o que explica por quedockerd
eclickhouse-server
aparecem como entradas separadas.Este é um bom recurso que explica como os contêineres são gerenciados e como seus processos são visíveis no sistema host. https://www.baeldung.com/linux/docker-container-process-host-pid
Espero que isso ajude.