Wie deaktiviert man den Autostart für alle Container in Docker?
Um den Autostart für alle Container in Docker zu deaktivieren, können Sie beim Ausführen oder Erstellen von Containern das [code]--restart[/code]-Flag verwenden und es auf "no" oder "on-failure" setzen. Beachten Sie jedoch, dass sich dies nur auf neue Container auswirkt und Sie bestehende Container manuell aktualisieren müssen, wenn Sie deren Autostart deaktivieren möchten.
So deaktivieren Sie den Autostart bei neuen Containern:
1. Stoppen und entfernen Sie alle bestehenden Container:
docker stop $(docker ps -aq) && docker rm $(docker ps -aq)
2. Setzen Sie die Standard-Neustart-Richtlinie auf "no" oder "on-failure":
docker update --restart=no $(docker ps -aq)
oder
docker update --restart=on-failure $(docker ps -aq)
Das --restart
Flag mit dem Wert "no" deaktiviert den Autostart für neue Container, und "on-failure" aktiviert den Autostart nur, wenn der Container ausfällt.
3. Überprüfen Sie, ob die Neustart-Richtlinie aktualisiert wurde:
docker inspect --format '{{.Name}} - RestartPolicy={{.HostConfig.RestartPolicy.Name}}' $(docker ps -aq)
Mit diesem Befehl werden die Containernamen und ihre Neustartrichtlinien angezeigt. Stellen Sie sicher, dass die Neustart-Policy für alle Container auf "no" oder "on-failure" gesetzt ist.
Wenn Sie von nun an neue Container erstellen, werden diese nicht automatisch gestartet, es sei denn, Sie starten sie explizit. Bestehende Container haben immer noch ihre vorherigen Neustartrichtlinien, so dass Sie diese ggf. manuell aktualisieren müssen.
Um den Autostart bei bestehenden Containern in Docker zu deaktivieren, können Sie folgendes tun:
#!/bin/bash
# Get a list of running containers
container_ids=$(docker ps -q)
# Disable autostart on each container
for container_id in $container_ids; do
docker update --restart=no $container_id
done
echo "Autostart disabled for all containers."
Speichern Sie das Skript in einer Datei, zum Beispiel disable_autostart.sh
. Vergewissern Sie sich, dass Sie ihm Ausführungsrechte erteilen:
chmod +x disable_autostart.sh
Dann können Sie das Skript ausführen:
./disable_autostart.sh
Das Skript ruft eine Liste der laufenden Container ab und durchläuft eine Schleife für jede Container-ID, um den Autostart mit dem Befehl docker update
mit dem Flag --restart=no
zu deaktivieren. Nach der Deaktivierung des Autostarts für alle Container wird eine Meldung ausgegeben, die bestätigt, dass der Autostart deaktiviert wurde.
Bitte beachten Sie, dass sich dieses Skript nur auf die Container auswirkt, die gerade laufen. Wenn Sie gestoppte Container haben, für die Sie den Autostart deaktivieren möchten, müssen Sie das Skript so ändern, dass es auch diese Container einbezieht.