
Ich habe gerade entdeckt, dass service docker stop
unter Ubuntu 18.04 nicht alle laufenden Container heruntergefahren werden. Ich kann sie nicht mehr steuern, aber die containerd-ship
Prozesse 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-shim
was schon ziemlich hart ist, laufen immer noch einige Prozesse, wie gunicorn
von 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 docker
werden alle laufenden Container heruntergefahren. systemctl start docker
Alle 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