我昨天开始使用Docker,不幸的是我创造了大量的容器。 现在我想删除所有这些。一个接一个地删除它们真的很无聊,因为我喜欢45个没有标签的容器。 我发现我应该使用do删除所有这些命令,如:
sudo docker rm $(docker ps -q)
但是当我尝试使用此命令时,它不起作用。 这是我的输出:
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.25/containers/json: dial unix /var/run/docker.sock: connect: permission denied
"docker kill" requires at least 1 argument(s).
See 'docker kill --help'.
Usage: docker kill [OPTIONS] CONTAINER [CONTAINER...]
Kill one or more running containers
我知道 $(docker ps -q)不能正常工作,因为存在权限被拒绝的问题。但我真的不知道如何解决这种情况。
任何帮助?
非常感谢!
答案 0 :(得分:0)
我相信你的docker守护进程没有运行。您可以使用sudo /etc/init.d/docker status
如果它正在运行,可能它被配置为不在/var/run/docker.sock
上收听。如果/etc/default/docker
中指定了-H
选项,您可以在DOCKER_OPTS
办理登机手续。
相关主题:安装Docker后,系统会提示您将用户添加到docker组。运行显示的命令并重新启动会话以考虑更改,因此您不再需要使用sudo
运行命令
答案 1 :(得分:0)
尝试运行以下命令
sudo docker rm $(sudo docker ps -q)
答案 2 :(得分:0)
获得的权限被拒绝.... 是因为在Docker UNIX套接字JNI_ABORT
中使用dockerd
守护程序的权限限制。这很容易解决。
您可以将您的用户添加到docker组。
/var/run/docker.sock
如果docker组不存在,则按如下所示创建一个组,然后执行上述第1步。
sudo suermod -a -G docker $USER
现在,注销并再次登录。完成了!
关于 docker kill”至少需要1个参数。此消息很简单。如果没有运行中的容器,则sudo groupadd docker
不返回任何内容,甚至没有一个参数。
您可以改为运行以下命令:
docker ps -q