Linux 获取docker remove的权限被拒绝错误

Linux 获取docker remove的权限被拒绝错误,linux,ubuntu,docker,Linux,Ubuntu,Docker,我正在遵循一个教程,在当前步骤中,我应该用这个删除任何先前存在的docker容器 docker rm -f $(docker ps -aq) 我通常必须使用sudo来使用docker命令,所以我尝试了 sudo docker rm -f $(docker ps -aq) 但我明白了 Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock:

我正在遵循一个教程,在当前步骤中,我应该用这个删除任何先前存在的docker容器

docker rm -f $(docker ps -aq)
我通常必须使用sudo来使用docker命令,所以我尝试了

sudo docker rm -f $(docker ps -aq)
但我明白了

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.32/containers/json?all=1: dial unix /var/run/docker.sock: connect: permission denied
"docker rm" requires at least 1 argument.
See 'docker rm --help'.

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

Remove one or more containers
通常,当我忘记使用sudo时,会出现权限错误,但在这种情况下,我有权限错误

有人知道怎么了吗

谢谢

编辑

我试过这个

sudo docker rm -f $(sudo docker ps -aq)
但是得到

"docker rm" requires at least 1 argument.
See 'docker rm --help'.

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

Remove one or more containers

我认为您没有任何预先存在的容器,此命令的结果
sudo docker ps-aq
似乎为空,这将导致total命令为
sudo docker rm-f
,没有任何容器ID。您可以跳过此命令,因为没有预先存在的容器。

您将需要
sudo
和另一个答案中指出的潜在“空”容器列表之间的一些不同问题结合起来

另一个答案是完全正确的,即此命令组合可能会导致
docker rm
错误,因为
docker ps-aq
无法返回任何内容,从而使
docker rm
命令没有选项,并提示帮助文本

当然,“内部”命令不能返回任何内容有两个原因:

  • 实际上,没有运行或退出的容器;在这种情况下,您可以忽略
    docker rm
    的错误,或自行运行
    docker ps-aq
    命令,以确信没有返回任何容器
  • 另一个原因是,如果命令由于缺乏与Docker守护进程对话的权限而失败。在第一个示例中,您展示了在remove命令上使用
    sudo
    ,但在内部
    ps
    命令上没有使用,这显示了无法与docker套接字通信的错误。输出可能会令人困惑,因为向您显示了两个错误;每个命令中的一行:“Get permission denied…”来自非sudo版本的
    docker ps
    ,第二行“docker rm requires least..”来自
    docker rm
    ,由于第一个命令失败,因此没有任何要删除的内容
  • 您需要
    sudo
    来使用
    docker
    客户端的原因是它通过位于
    /var/lib/docker.sock
    的UNIX套接字与docker引擎对话,该套接字由
    root
    (uid所有者)和
    docker
    组所有者控制写访问权限。有关在Docker命令中使用
    sudo
    的详细信息,以及有关如何允许普通用户访问套接字的信息,(如果选择)。在决定是否需要sudo或是否将用户添加到
    docker
    组之前,请确保阅读该页面上的警告,说明允许使用哪些功能

    如果您确实将用户添加到
    docker
    组,您将不再需要对docker命令使用
    sudo
    ,并且可以忽略在所有docker客户端命令前面加有
    sudo
    前缀的任何指南/教程