我在装有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 usermod -aG docker $USER

然后重新启动你的电脑这对我有用。

在Linux环境下,安装docker后,需要重新启动docker才能更好地避免这个问题。

$ sudo systemctl restart docker

修复Docker问题:(权限被拒绝)

如果docker组不存在,请创建docker组:sudo groupadd docker 查看可用系统中的超级用户数量:grep -Po '^sudo.+:\K。* $的所属 在linux命令shell中导出用户:Export user = demuser 将用户添加到docker组:sudo usermod -aG docker $ user 执行以下命令/登录或注销 检查docker运行是否正常:docker run hello-world 如果仍然得到错误,重新启动:Reboot

如果不成功,执行以下命令:

Sudo chmod 660 /var/run/docker.sock

我尝试了所描述的所有方法,但都无济于事。解决方案是在运行selenoid和selenoid-ui时使用——use-drivers参数。下面是我的Dockerfile的完整列表。

FROM selenoid/chrome
USER root
RUN apt-get update
RUN apt-get -y install docker.io
RUN curl -s https://aerokube.com/cm/bash | bash
RUN ./cm selenoid start --vnc --use-drivers
RUN ./cm selenoid-ui start --use-drivers
EXPOSE 4444 8080
CMD ["-conf", "/etc/selenoid/browsers.json", "-video-output-dir", "/opt/selenoid/video/"]

我用命令解决了这个错误:

$ sudo chmod 666 /var/run/docker.sock