首页 > 解决方案 > 尝试在 unix:///var/run/docker.sock 连接到 Docker 守护程序套接字时获得权限被拒绝:

问题描述

用例:

基本实例有一个 Ubuntus 16.04 安装的 Docker,它可以找到并且我可以检查 docker 图像。

部署了 Jenkins Docker 容器的实例。

docker run -p 8080:8080 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  --name jenkins \
  jenkins/jenkins:lts

此 Jenkins 实例将在容器中挂载主机的 Docker 套接字。正如文章中提到的那样。

https://getintodevops.com/blog/the-simple-way-to-run-docker-in-docker-for-ci

现在在 Jenkins 容器上安装了 docker 二进制文件。

apt-get update && \
apt-get -y install apt-transport-https \
 ca-certificates \
 curl \
 gnupg2 \
 software-properties-common && \
curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg > /tmp/dkey; apt-key add /tmp/dkey && \
add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
   $(lsb_release -cs) \
   stable" && \
apt-get update && \
apt-get -y install docker-c

从 Jenkins 容器中运行 Docker ps 并列出可用的容器。

但是,当从 Jenkins 触发作业时,它会因以下错误而失败 + 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.39/containers/create : 拨打 unix /var/run/docker.sock: connect: 权限被拒绝。

我尝试了将用户添加到组中的解决方案,但仍然失败

https://techoverflow.net/2017/03/01/solving-docker-permission-denied-while-trying-to-connect-to-the-docker-daemon-socket/

任何帮助是极大的赞赏。

谢谢

标签: dockerjenkinsdocker-composedocker-machine

解决方案


我得到了这个工作。

将用户添加到组停止并重新启动容器


推荐阅读