Como garantir que o serviço docker será iniciado após a atualização do containerd?

Como garantir que o serviço docker será iniciado após a atualização do containerd?

esta manhã acordei com um e-mail de 'serviço inativo' que recebi do watchdog. Depois de me conectar ao servidor, descobri que o dockerserviço estava inativo. Após uma pequena investigação, descobri que esta manhã o Ubuntu fez uma atualização autônoma do containerdserviço e após a atualização, dockero serviço não foi iniciado automaticamente.

Como posso ter certeza de que após a atualização isso não acontecerá novamente?

Responder1

Tivemos o mesmo problema. Optei por usar um arquivo de unidade systemd para criar uma dependência frouxa entre containerd e dockerd.

Veja como:

Como raiz:

Crie o diretório de substituição (permissão 755)

mkdir /etc/systemd/system/containerd.service.d/

Crie o arquivo de substituição no diretório acima (permissões 644)

vi override.conf

Adicione o seguinte ao arquivo

[Unit]
Before=docker.service
Wants=docker.service

Reinicie o daemon do systemd

systemctl daemon-reload

Verifique se funciona

Pare o contêiner

systemctl stop containerd

Verifique se o dockerd parou

systemctl status docker

Iniciar contêiner

systemctl start containerd

Verifique se o dockerd foi iniciado

systemctl status docker

+++++++++++++++++++++++++

Alguns links para outras documentações sobre o assunto

https://www.shellhacks.com/systemd-service-file-example/

https://man7.org/linux/man-pages/man5/systemd.service.5.html

Responder2

Eu configurei o Docker e seus pacotes relacionados para serem mantidos, para que eles sejam atualizados apenas em atualizações planejadas.

sudo apt-mark hold docker containerd

Quando quero atualizar o Docker, executo apt-mark unhold, atualizo os pacotes e os retiro novamente. Eu tenho um manual do Ansible para automatizar esse processo. Meu manual para instalar e configurar o Docker define os pacotes para serem mantidos diretamente após a instalação.

Responder3

Odocumentaçãonas políticas de reinicialização do docker é útil, inicie seus contêineres com as opções alwaysou unless-stoppedconforme apropriado para seu uso.

Também parece razoável impedir o Ubuntu de realizar atualizações autônomas.

informação relacionada