
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 docker
servicio no funciona. Después de una pequeña investigación, descubrí que esta mañana Ubuntu realizó una actualización desatendida del containerd
servicio y después de la actualización, docker
el 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 always
o unless-stopped
según corresponda para su uso.
También parece razonable impedir que Ubuntu realice actualizaciones desatendidas.