Ich kann den automatischen Neustart mit aktivieren --restart=always
, aber wie kann ich dieses Attribut deaktivieren , nachdem ich den Container gestoppt habe?
Normalerweise verwende ich einen Webserver und ordne normalerweise Port 80 zu:
docker run -d --restart=always -p 80:80 -i -t myuser/myproj /bin/bash
Es gibt jedoch Situationen, in denen ich eine neuere Version meines Images ausführen möchte, aber den alten Container beibehalten möchte. Das Problem ist, dass bei mehreren Containern --restart=always
nur einer (zufällig?) Startet, da alle auf dem Host um Port 80 kämpfen.
docker update --restart=no $(docker ps -a -q)
, um alle Ihre Container zu aktualisieren :-)Sie können Ihren Container mit starten
--restart=unless-stopped
.quelle
Verwenden Sie die folgenden Schritte, um ALLE Container für den automatischen Neustart (Daemon) zu deaktivieren.
Verwenden Sie Folgendes, um den Neustart eines SINGLE-Containers zu deaktivieren.
Rational :
Docker bietet Neustartrichtlinien, mit denen Sie steuern können, ob Ihre Container beim Beenden oder beim Neustart von Docker automatisch gestartet werden. Dies ist häufig sehr nützlich, wenn Docker einen Schlüsseldienst ausführt.
Anmerkungen
Wenn Sie Docker-Compose verwenden, kann es hilfreich sein, dies zu wissen.
quelle
Wenn ein Schwarm die Container neu startet, startet der Schwarm alle Container neu, die Sie anhalten oder rm, unabhängig von der Neustartoption. Das ist eine Funktion, kein Fehler.
Stellen Sie sicher, dass Sie keinen Dienst ausführen, den Sie vergessen haben:
Dann können Sie den Dienst beenden
quelle
ls
führt zu FehlerError response from daemon: This node is not a swarm manager. Use "docker swarm init" or "docker swarm join" to connect this node to swarm and try again.