Wie stellt man sicher, dass der Docker-Dienst nach dem Containerd-Upgrade gestartet wird?

Wie stellt man sicher, dass der Docker-Dienst nach dem Containerd-Upgrade gestartet wird?

heute Morgen wachte ich mit einer E-Mail von Watchdog auf, in der es hieß, der Dienst sei ausgefallen. Nachdem ich mich mit dem Server verbunden hatte, stellte ich fest, dass der dockerDienst ausgefallen war. Nach kurzer Untersuchung stellte ich fest, dass Ubuntu heute Morgen ein unbeaufsichtigtes Upgrade des containerdDienstes durchgeführt hatte und der Dienst nach dem Upgrade dockernicht automatisch gestartet wurde.

Wie kann ich sicherstellen, dass dies nach dem Upgrade nicht erneut passiert?

Antwort1

Wir hatten das gleiche Problem. Ich habe mich für die Verwendung einer systemd-Unit-Datei entschieden, um eine lose Abhängigkeit zwischen Containerd und Dockerd zu erstellen.

Hier ist wie:

Als Root:

Erstellen Sie das Override-Verzeichnis (Berechtigung 755)

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

Erstellen Sie die Override-Datei im obigen Verzeichnis (Berechtigungen 644).

vi override.conf

Fügen Sie der Datei Folgendes hinzu

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

Starten Sie den systemd-Daemon neu

systemctl daemon-reload

Überprüfen Sie, ob es funktioniert

Containerd stoppen

systemctl stop containerd

Überprüfen Sie, ob Dockerd gestoppt wurde

systemctl status docker

Starten Sie containerd

systemctl start containerd

Überprüfen Sie, ob Dockerd gestartet wurde

systemctl status docker

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

Einige Links zu anderer Dokumentation zum Thema

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

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

Antwort2

Ich habe Docker und die zugehörigen Pakete auf „Halten“ eingestellt, sodass sie nur bei geplanten Upgrades aktualisiert werden.

sudo apt-mark hold docker containerd

Wenn ich Docker aktualisieren möchte, führe ich aus apt-mark unhold, aktualisiere die Pakete und halte sie erneut. Ich habe ein Ansible-Playbook, um diesen Vorgang zu automatisieren. Mein Playbook zum Installieren und Konfigurieren von Docker legt die zu haltenden Pakete direkt nach der Installation fest.

Antwort3

DerDokumentationInformationen zu Docker-Neustartrichtlinien sind hilfreich. Starten Sie Ihre Container mit den für Ihren Einsatzzweck geeigneten Optionen alwaysoder .unless-stopped

Es erscheint auch sinnvoll, Ubuntu daran zu hindern, unbeaufsichtigte Upgrades durchzuführen.

verwandte Informationen