Vor kurzem habe ich verschiedene Dinge studiert, indem ich Docker auf EC2 (Amazon Linux2) von AWS ~~ gespielt ~~ gesetzt habe.
Erstellen Sie einen Centos-Container → Weiter → Fertig stellen, erstellen Sie einen MySQL-Container → Weiter → Fertig stellen usw. und überprüfen Sie gelegentlich den Betriebsstatus des Containers mit dem Befehl docker ps
, jedoch an einem Punkt Docker Als ich ps -a
** lief Was zur Hölle! !! **ist geworden.
Dann: "Hassen Sie Docker nicht, auch wenn der Docker-Container vorbei ist!"
◯ Ich bin nicht sicher, ob Herr Atsuko Ta sagte, aber zumindest habe ich erfahren, dass ** der Docker-Container vorbei ist, aber der Docker-Container bleibt **.
Die nutzlose Einführung ist lang geworden, aber um den in diesem Pool angesammelten Müll-Docker-Container zu löschen Ein Memorandum of Command.
Vor dem Löschen angeben
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9ec50bb2ac79 mysql "docker-entrypoint.s…" 4 days ago Up 2 days 3306/tcp, 33060/tcp MYSQL
20cabc9db638 centos "/bin/bash" 4 days ago Up 2 days 0.0.0.0:9989->8080/tcp centos_container
149e47fc7182 mysql "docker-entrypoint.s…" 4 days ago Exited (0) 4 days ago silly_haibt
6d0b42666db1 mysql "docker-entrypoint.s…" 4 days ago Exited (0) 4 days ago stoic_panini
cc75432e283b mysql "docker-entrypoint.s…" 4 days ago Exited (127) 4 days ago serene_merkle
e75ea014088a mysql "docker-entrypoint.s…" 4 days ago Exited (0) 4 days ago laughing_allen
7f6d0144717d centos "/bin/bash" 4 days ago Exited (0) 4 days ago zealous_haibt
b78d2f0c9b93 centos "/bin/bash" 4 days ago Exited (0) 4 days ago centos_1
a1adb31a4719 mysql "docker-entrypoint.s…" 4 days ago Exited (0) 4 days ago mysql_container
b977c75c9dd7 mysql "docker-entrypoint.s…" 4 days ago Exited (1) 4 days ago bold_nobel
6c590752cab8 mysql "docker-entrypoint.s…" 4 days ago Exited (1) 4 days ago gifted_nightingale
Löschen Sie von allen oben genannten alle außer den beiden obersten in Betrieb.
docker ps -f status=exited | awk '{print $1}' | xargs docker rm
Ausführungsergebnis
149e47fc7182
6d0b42666db1
cc75432e283b
e75ea014088a
7f6d0144717d
b78d2f0c9b93
a1adb31a4719
b977c75c9dd7
6c590752cab8
Error: No such container: CONTAINER
[ ~]$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9ec50bb2ac79 mysql "docker-entrypoint.s…" 4 days ago Up 2 days 3306/tcp, 33060/tcp MYSQL
20cabc9db638 centos "/bin/bash" 4 days ago Up 2 days 0.0.0.0:9989->8080/tcp centos_container
Der unnötige Container ist verschwunden, aber ich habe eine Fehlermeldung erhalten, als ich versucht habe, "Docker rm" mit "CONTAINER" in der Kopfzeile auszuführen. .. (Nun, Ikka)
Nach dem Erstellen des obigen Befehls zeigt das Docker Official Manual, wie ein nicht laufender Container gelöscht wird. .. Möglicherweise wird Ihnen gesagt, dass Sie es vor die awk-Methode stellen sollen, die die oben genannten nicht enthält ...
Zustand vor der Ausführung (ich habe die Produktion unnötiger Container wieder erhöht)
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
109839ada027 centos "/bin/bash" 35 seconds ago Exited (0) 34 seconds ago vibrant_bohr
cf2e8c41b2ee centos "/bin/bash" 36 seconds ago Exited (0) 36 seconds ago brave_mestorf
fcfdaf35235d centos "/bin/bash" 37 seconds ago Exited (0) 37 seconds ago gallant_faraday
bf7b9fa96291 centos "/bin/bash" 38 seconds ago Exited (0) 38 seconds ago zealous_morse
9ec50bb2ac79 mysql "docker-entrypoint.s…" 4 days ago Up 2 days 3306/tcp, 33060/tcp MYSQL
20cabc9db638 centos "/bin/bash" 4 days ago Up 2 days 0.0.0.0:9989->8080/tcp centos_container
Befehl löschen
Befehlserklärung (aus dem offiziellen Handbuch)
Dieser Befehl löscht alle gestoppten Container. Der Befehl docker ps -a -q übergibt alle fertigen Container-IDs an den Befehl rm und löscht sie alle. Der laufende Container wird nicht gelöscht.
docker rm $(docker ps -a -q)
Ausführungsergebnis
109839ada027
cf2e8c41b2ee
fcfdaf35235d
bf7b9fa96291
Error response from daemon: You cannot remove a running container 9ec50bb2ac797f3cfdbe827aa2793ba135f6f29e9fd2c1b179afa09d6be4b5ba. Stop the container before attempting removal or force remove
Error response from daemon: You cannot remove a running container 20cabc9db6380304c3c0c3b8a14f04e0bd60fd58c810ee4c02d6539fd5b4f3f3. Stop the container before attempting removal or force remove
Beim Versuch, einen laufenden Container zu löschen, tritt ein Fehler auf. Ich habe es nicht versucht, aber wenn Sie "Docker rm -f $ (Docker ps -a -q)" tun, werden Sie verurteilt, alle Container zu töten! Es sollte so sein, und wie die meisten von Ihnen, die bisher gelesen haben, bemerkt haben, wurde es mit der oben genannten awk-Methode durchgeführt. Der Inhalt kann auch mit dem folgenden Befehl realisiert werden ...
docker rm $(docker ps -f status=exited -q)
Na dann scheint es dir gut zu gehen. .. .. Zehn