Alle Docker-Container herunterfahren

Alle Docker-Container herunterfahren

Ich habe gerade entdeckt, dass service docker stopunter Ubuntu 18.04 nicht alle laufenden Container heruntergefahren werden. Ich kann sie nicht mehr steuern, aber die containerd-shipProzesse und alles, was sich in den Containern befindet, laufen noch (aber nicht erreichbar, vielleicht weil das Netzwerk entfernt wurde).

Auch das Stoppen von containerd ändert nichts, da dadurch die Container konzeptgemäß nicht gestoppt werden.

Und selbst danach, killall containerd-shimwas schon ziemlich hart ist, laufen immer noch einige Prozesse, wie gunicornvon Gitlab, BackupPC und einer Linux UML-Instanz

Wie führe ich ein sauberes Herunterfahren aller laufenden Container durch? Das aktuelle Verhalten ist dafür verantwortlich, dass mein System beim Herunterfahren hängt.

Aktualisieren: Ich habe gerade gesehen, dass ich das Repo verwende (https://download.docker.com/linux/ubuntu), das aus einem Kubernetes-Tutorial stammt (das ich noch nicht verwende). Diese Quelle enthält proprietäre Versionen von containerd.io, docker-ce und docker-ce-cli

Antwort1

Problem gelöst.

Der Hauptpunkt war, dass ich ein zusätzliches Repository direkt von Docker hatte (https://download.docker.com/linux/ubuntu), das proprietäre Versionen von containerd.io, docker-ce und docker-ce-cli mitbrachte. Ubuntu Universe hingegen war nicht einmal in meinem /etc/apt/source.list.

Ich habe jetzt auf 20.04 aktualisiert und verwende die ursprünglichen Docker-Pakete (docker.io) aus dem Ubuntu-Universum. Das funktioniert einwandfrei und fährt wie erwartet herunter. Ich bin sicher, dass das auch unter 18.04 funktioniert hätte, wollte aber ein Downgrade von Docker durch Wechseln des Repos vermeiden.

Antwort2

Bei meiner Ubuntu 18.04-Installation systemctl stop dockerwerden alle laufenden Container heruntergefahren. systemctl start dockerAlle Container werden erneut gestartet. Ich stimme BMitch zu, man bräuchte mehr Informationen über Ihre Installation, um das Problem zu diagnostizieren.

Eine andere Möglichkeit zum Herunterfahren aller laufenden Container wäre:

docker ps -q | xargs docker stop

verwandte Informationen