Container-Autostart Docker bietet einen Neustartrichtlinienmechanismus, der steuern kann, dass der Container automatisch gestartet wird, wenn der Container beendet wird oder Docker neu gestartet wird. Diese Neustartrichtlinie stellt sicher, dass zusammengehörige Container in der richtigen Reihenfolge gestartet werden. Obwohl diese Aktion auch durch eine Prozessüberwachung (wie etwa systemd) erreicht werden kann, empfiehlt Docker dennoch, die Verwendung der Prozessüberwachung zum „Selbststarten“ von Containern zu vermeiden. Es gibt einen Unterschied zwischen der Neustartrichtlinie von Docker und dem Startflag --live-restore des Befehls dockerd: Das Flag --live-restore stellt sicher, dass der Container beim Upgrade von Docker weiter ausgeführt wird, die Netzwerk- und Benutzerterminaleingaben jedoch unterbrochen werden. Was genau ist also eine Neustartrichtlinie? Schauen wir uns die tatsächliche Situation an. Verwenden der Neustartrichtlinie Die Neustartrichtlinie wird durch das Flag --restart angegeben, wenn der Container mit docker run gestartet wird. Für dieses Flag stehen mehrere Werte zur Auswahl, und unterschiedliche Werte haben unterschiedliche Verhaltensweisen, wie in der folgenden Tabelle aufgeführt:
Beispiel: Der folgende Befehl startet einen Redis-Container. Wenn der Redis-Container gestoppt oder Docker neu gestartet wird, wird der Redis-Container neu gestartet. $ docker run -dit --restart, sofern nicht angehaltenes Redis Details zur Neustartrichtlinie Beim Einsatz von Neustartrichtlinien müssen Sie auf folgende Details achten: (1) Die Neustartrichtlinie wird erst wirksam, nachdem der Container erfolgreich gestartet wurde. „Erfolgreicher Start“ bedeutet hier, dass der Container seit mindestens 10 Sekunden aktiv ist und von Docker überwacht wird. Damit soll verhindert werden, dass Container, die nicht erfolgreich gestartet wurden, in eine Endlosschleife von Neustarts geraten. (2) Wenn Sie einen Container manuell stoppen (was ist der Unterschied zum expliziten Stoppen oben), wird die für den Container festgelegte Neustartrichtlinie ignoriert, sofern nicht der Docker-Daemon oder der Container manuell neu gestartet wird. Dadurch wird ein weiterer Teufelskreis vermieden. (3) Neustartrichtlinien können nur für Container verwendet werden. Für Swarm-Dienste haben Neustartrichtlinien ungültige Konfigurationen. Prozessüberwachung Wenn die oben genannten Neustartrichtlinien Ihren Anforderungen nicht entsprechen, können Sie auch Lösungen zur Prozessüberwachungsverwaltung verwenden, wie z. B. Upstart, Systemd oder Supervisor usw. Bei dieser Lösung läuft der Prozessüberwachungsdienst im Container. Es kann überwachen, ob ein Prozess ausgeführt wird, und den Prozess starten, wenn er nicht ausgeführt wird. Docker ist sich von all dem, was passiert, überhaupt nicht bewusst. Docker empfiehlt diese Methode nicht zur Prozessüberwachung. Der Grund ist einfach. Diese Methode hängt mit der Systemplattform und sogar der Linux-Distribution zusammen. Original: https://docs.docker.com/engine/admin/start-containers-automatically/#use-a-process-manager Docker-Container startet automatisch beim Booten Wenn Sie den Container mit Docker Run starten, verwenden Sie den Parameter --restart, um Folgendes festzulegen: # docker run -m 512m --memory-swap 1G -it -p 58080:8080 --restart=alway --name bvrfis --volumes-from logdata mytomcat:4.0 /root/run.sh --restart spezifische Parameterwertdetails:
Sie können auch angeben, wie oft Docker maximal versucht, den Container bei Verwendung der On-Failure-Strategie neu zu starten. Standardmäßig versucht Docker, Container immer wieder neu zu starten. # sudo docker run --restart=on-failure:10 redis Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Probleme und Lösungen für MYSQL5.7.17-Verbindungsfehler unter MAC
>>: JS implementiert Click-Drop-Effekt
Software für virtuelle Maschinen: VMware Workstat...
Inhaltsverzeichnis Abstraktion und Wiederverwendu...
Inhaltsverzeichnis Hintergrund Beispiel Missverst...
Herunterladen und Installieren von JDK Schritt 1:...
In diesem Artikel wird die Installations- und Kon...
Inhaltsverzeichnis App.vue sub1.vue sub2.vue Zusa...
Das Konfigurieren der Netzwerkkonnektivität für L...
Heute habe ich festgestellt, dass ein Programm ei...
1. Ziehen Sie das Redis-Image docker pull redis 2...
【SQL】 Zusammenfassung der SQL-Paging-Abfragen Wäh...
Im Frontend-Designentwurf sieht man oft Schließen...
Nach der Installation von Docker trat beim Versuc...
Im Linux-System können sowohl chmod- als auch cho...
Jeder muss mit Tabellen vertraut sein. Wir stoßen...
docker-compose.yml Version: '2' Leistunge...