我在装有Ubuntu操作系统的机器上安装了Docker。 当我跑步时:

sudo docker run hello-world

一切都很好,但是我想隐藏sudo命令以使该命令更短。 如果我写的命令没有sudo

docker run hello-world

显示如下:

docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.35/containers/create: dial unix /var/run/docker.sock: connect: permission denied. See 'docker run --help'.

当我试图跑步时,同样的情况也会发生:

docker-compose up

我该如何解决这个问题?


当前回答

我们总是忘记acl。看到setfacl。


sudo setfacl -m user:$ user: rw /var/run/docker.sock

其他回答

只要打开终端,输入这个命令

sudo chmod 666 /var/run/docker.sock

最直接的解决办法是打字

Sudo chmod 666 /var/run/docker.sock 每次你启动你的机器。然而,这种方法会破坏现有的任何系统安全性,并向所有人开放Docker套接字。如果这对你来说是可以接受的——例如:你的机器的唯一用户——那么就使用它。

尽管如此,每次启动机器时都需要它,您可以通过添加使它在引导时运行

start on startup
task
exec chmod 666 /var/run/docker.sock

打开/etc/init/docker-chmod.conf文件。

为了解决这个问题,我搜索了我的docker和docker-compose安装在哪里。在我的例子中,docker安装在/usr/bin/docker, docker-compose安装在/usr/local/bin/docker-compose路径下。然后,我在我的终端中这样写:

码头工人:

sudo chmod +x /usr/bin/docker

docker-compose:

sudo chmod +x /usr/local/bin/docker-compose

现在我不需要在我的命令docker中写入单词sudo

/***********************************************************************/

勘误:

这个问题的最佳解决方案由@mkasberg评论。我引用评论:

这可能会起作用,你可能会遇到问题。此外,这也是一个安全漏洞。你最好把自己加入docker组,就像文档中说的那样。sudo groupadd docker, sudo usermod -aG docker $USER。 文档:https://docs.docker.com/install/linux/linux-postinstall/

你可以尝试在https://docs.docker.com/install/linux/linux-postinstall/文档中以非根用户的身份管理Docker。

在这样做之后,如果问题仍然存在,那么您可以运行以下命令来解决它:

sudo chmod 666 /var/run/docker.sock

你可以按照以下步骤来做,这会对你有用:

create a docker group sudo groupadd docker add your user to this group sudo usermod -aG docker $USER list the groups to make sure that docker group created successfully by running this command groups run the following command also to change the session for docker group newgrp docker change the group ownership for file docker.socksudo chown root:docker /var/run/docker.sock change the ownership for .docker directory sudo chown "$USER":"$USER" /home/"$USER"/.docker -R finally sudo chmod g+rwx "$HOME/.docker" -R

在这个测试之后,你可以运行docker ps -a