gpt4 book ai didi

docker - "docker container prune"和 "docker rm $(docker container ls -aq)"有什么区别

转载 作者:行者123 更新时间:2023-12-02 17:51:58 25 4
gpt4 key购买 nike

我正在阅读 Docker 文档,但我不明白以下之间的区别:
docker container prune

docker rm $(docker container ls -aq)
请注意,在链接中,我列出的第二个命令是 docker rm $(docker ps -a -q) ,但这和我写的没有区别。 container ls就是 newer versionps命令。
似乎这两个命令都删除了所有停止的容器。还有比这更多的东西吗,或者这些只是同义词?

最佳答案

我认为没有实质性的区别。此 -a虽然意味着列出所有容器,结果 docker rm ...还将尝试删除正在运行的容器。这给出了您在下面看到的错误:

Error response from daemon: You cannot remove a running container [...] Stop the container before attempting removal or force remove


示例 :
$ docker container run --rm -itd alpine:latest 
0ec4d7459d35749ecc24cc5c6fd748f4254b0782f73f1ede76cf49b1fc53b2d4

$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0ec4d7459d35 alpine:latest "/bin/sh" 4 seconds ago Up 1 second jovial_ritchie

$ docker rm $(docker container ls -aq)
Error response from daemon: You cannot remove a running container 0ec4d7459d35749ecc24cc5c6fd748f4254b0782f73f1ede76cf49b1fc53b2d4. Stop the container before attempting removal or force remove

$ docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0B
但是...不同时 --force , -f用来:
在这种情况下,这些命令会做两件不同的事情:
  • docker rm -f ...强制删除正在运行的容器(使用 SIGKILL),这意味着它将删除正在运行的容器。
    $ docker rm -f $(docker container ls -aq)
    0ec4d7459d35
  • docker container prune -f将删除所有停止的容器而不要求确认(不会打印 [y/N] 提示)。
    $ docker container prune -f
    Total reclaimed space: 0B
  • 关于docker - "docker container prune"和 "docker rm $(docker container ls -aq)"有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63671792/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com