¿Cómo asegurarse de que el servicio Docker se inicie después de la actualización en contenedor?

¿Cómo asegurarse de que el servicio Docker se inicie después de la actualización en contenedor?

Esta mañana me desperté con un correo electrónico de "servicio caído" que recibí del organismo de control. Después de conectarme al servidor, encontré que el dockerservicio no funciona. Después de una pequeña investigación, descubrí que esta mañana Ubuntu realizó una actualización desatendida del containerdservicio y después de la actualización, dockerel servicio no se inició automáticamente.

¿Cómo puedo asegurarme de que después de la actualización esto no vuelva a suceder?

Respuesta1

Tuvimos el mismo problema. Opté por usar un archivo de unidad systemd para crear una dependencia flexible entre containerd y dockerd.

Así es cómo:

Como raíz:

Realizar el directorio de anulación (permiso 755)

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

Cree el archivo de anulación en el directorio anterior (permisos 644)

vi override.conf

Agregue lo siguiente al archivo

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

Reiniciar el demonio systemd

systemctl daemon-reload

comprueba que funciona

dejar de contener

systemctl stop containerd

Comprobar que Dockerd se ha detenido

systemctl status docker

Iniciar contenedor

systemctl start containerd

Comprobar que Dockerd ha comenzado

systemctl status docker

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

Algunos enlaces a otra documentación sobre el tema.

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

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

Respuesta2

Configuré Docker y sus paquetes relacionados para que se mantengan en espera para que solo se actualicen en las actualizaciones planificadas.

sudo apt-mark hold docker containerd

Cuando quiero actualizar Docker, ejecuto apt-mark unhold, actualizo los paquetes y los retengo nuevamente. Tengo un manual de Ansible para automatizar este proceso. Mi manual para instalar y configurar Docker establece que los paquetes se mantengan directamente después de la instalación.

Respuesta3

Eldocumentaciónsobre las políticas de reinicio de Docker es útil, inicie sus contenedores con las opciones alwayso unless-stoppedsegún corresponda para su uso.

También parece razonable impedir que Ubuntu realice actualizaciones desatendidas.

información relacionada