我引用:
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
你能帮我理解我应该做些什么来获得目的。
答案 0 :(得分:5)
这可能只是意味着您没有状态为“已退出”的容器。
然后命令变为:
sudo docker rm -v
缺少任何参数会触发您看到的错误消息。
但是今天,无论如何,这将由docker container prune
完成。
答案 1 :(得分:4)
为了删除所有已停止的容器,您可以先运行
$ 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.
答案 2 :(得分:3)
$ 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
命令。它由您的父sudo
命令外部的外壳程序运行,并将输出传递到sudo
以root身份运行docker rm
。有几种修正。
简单的选项,用docker ps
运行sudo
:
$ 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)
答案 3 :(得分:0)
似乎正在发生的事情toArray
是由不同的用户启动的。因此,由于docker
问题无法运行docker ps -aq -f status=exited
因此导致permission
结果。
由于空白结果,blank
抱怨缺少参数。
docker rm
答案 4 :(得分:0)
实际上是权利问题...。错误消息:
mongoDatabase = mongoClient.getDatabase("DBName");
MongoCollection<Document> col = mongoDatabase.getCollection("CollectionName");
Bson filter = Filters.and(
Filters.ne("totalmarks", 5),
Filters.ne("totalmarks",15));
MongoCursor<Document> cursor = col.find(filter).iterator();
告诉您无法连接到在root用户下运行的docker守护程序。您应该决定是要以Got permission denied while trying to connect to the Docker daemon socket at unix://
还是以root用户使用docker。
Manage Docker as a non-root user
进一步说,# sudo
抱怨没有找到要删除的图像,因此无法删除图像。
命令docker rm
在最新的docker版本18.09.0上还不错,但是您也可以使用docker rm $(docker ps -aq -f status=exited)
,这是更具交互性的方式。