当前位置: 首页 > 知识库问答 >
问题:

删除所有停止的容器:"docker rm"至少需要1个参数

暴乐邦
2023-03-14

我正在读一本关于码头工人的书。这是一对夫妇岁。

我将引用:

If you want to get rid of all your stopped containers, you can use
the output of docker ps -aq -f status=exited , which gets the
IDs of all stopped containers. For example:
$ docker rm -v $(docker ps -aq -f status=exited)

当我运行这个,我得到:

michael@michael-desktop:~$ sudo docker rm -v $(docker ps -aq -f status=exited)
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.30/containers/json?all=1&filters=%7B%22status%22%3A%7B%22exited%22%3Atrue%7D%7D: dial unix /var/run/docker.sock: connect: permission denied
"docker rm" requires at least 1 argument(s).
See 'docker rm --help'.

Usage:  docker rm [OPTIONS] CONTAINER [CONTAINER...]

Remove one or more containers

你能帮我理解我应该做什么来获得想要的吗?

共有3个答案

百里弘致
2023-03-14
$ sudo docker rm -v $(docker ps -aq -f status=exited)
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get
http://%2Fvar%2Frun%2Fdocker.sock/v1.30/containers/json?all=1&filters=%7B%22status%22%3A%7B%22exited%22%3Atrue%7D%7D:
dial unix /var/run/docker.sock: connect: permission denied
"docker rm" requires at least 1 argument(s).
See 'docker rm --help'.

权限被拒绝消息来自嵌入的docker ps命令。它由shell在父级sudo命令之外运行,输出被传递到sudo以root身份运行docker rm。有几种修复方法。

使用sudo运行docker ps,这是一个简单的选项:

$ sudo docker rm -v $(sudo docker ps -aq -f status=exited)

选项二是以root身份运行整个shell:

$ sudo -s
# docker rm -v $(docker ps -aq -f status=exited)
# exit

或者,您可以让用户访问docker套接字,这样就不再需要sudo

$ sudo usermod -aG docker $USER
$ newgrp docker

上面的更改是一次性的,并通过docker隐式地为该用户提供root访问权限。然后您可以运行:

$ docker rm -v $(docker ps -aq -f status=exited)
厉钊
2023-03-14

为了移除所有停止的容器,您可以先运行

$ docker ps -a

这将为您提供正在运行和停止的容器列表,您可以从中选择要清除的容器。但是如果你想摆脱所有停止的容器,那么你需要使用

$ docker container prune 

这将通过向您提供以下消息来删除所有已停止的容器。

Warning! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Deleted Containers:
your container id list will be printed.
太叔马鲁
2023-03-14

这可能仅仅意味着您没有状态为“退出”的容器。

命令变成:

sudo docker rm -v

缺少任何参数都会触发您看到的错误消息。

但是今天,无论如何,这将通过docker容器prune来完成。

 类似资料:
  • 我将举出: 当我运行这个程序时,我得到: 你能帮我理解我该怎么做才能达到目的吗。

  • 问题内容: 每次运行此php时,我都会不断收到相同的3个错误。我不知道我在做什么错,有人可以帮忙吗? 错误如下: [2014年5月5日19:20:50美国/芝加哥] PHP警告:mysqli_query()至少需要2个参数,第10行的/home/sagginev/public_html/Nutrifitness/search.php中提供了1个参数 [2014年5月5日19:20:50美国/芝加哥

  • 问题内容: 是否有可以将and 命令组合在一起的命令?每次我要删除正在运行的容器时,都需要顺序执行2条命令,我想知道是否有组合的命令可以简化此过程。 问题答案: 您可以使用 : 即使容器仍在运行,它也会删除该容器。 https://docs.docker.com/engine/reference/commandline/rm/ 您也可以使用选项运行容器,停止后它将自动删除。 https://doc

  • 用Docker容器创建一个干净的石板的最佳方法是什么?很多时候,我觉得从头开始比较容易,但是我有一堆容器,我不确定它们的状态是什么,那么当我运行时,它就不让我运行了,因为docker容器可能还在使用中。

  • 问题内容: 直到最近,当一个人正在处理一堆容器并且其中一个启动的容器停止时,所有容器都停止了。自从https://github.com/docker/compose/issues/741以来,情况就不再如此了,这对我们来说真的很烦人:我们使用docker- compose运行selenium测试,这意味着启动应用程序服务器,启动selenium hub +节点,启动测试驱动程序,然后在测试驱动程序

  • 我试图创建一个代码,它需要一个用户ID,然后检查它是否与一个匹配,如果它这样做了,它会发送一条消息...我一直得到错误TypeError:on_message()缺少1所需的位置参数:'消息'...