【发布时间】:2017-08-01 20:47:24
【问题描述】:
我面临以下问题:我创建了一个 Jenkins docker 容器,并将主机上的 docker 套接字与容器链接。像这样:
docker run -v /var/run/docker.sock:/var/run/docker.sock -p 8080:8080 -p 50000:50000 -d --name jenkins --restart unless-stopped jenkins
然后,当我尝试在 jenkins 上创建一些工作时,我收到通常的“权限被拒绝”消息:
在尝试连接到 Docker 守护程序时获得权限被拒绝 unix:///var/run/docker.sock 处的套接字:获取 http://%2Fvar%2Frun%2Fdocker.sock/v1.29/images/json:拨unix /var/run/docker.sock: 连接:权限被拒绝
但如果我附加到容器并使用 root 用户运行命令,则不会发生该问题。
我该如何解决这个问题?
我无法通过运行 sudo gpasswd -a jenkins docker 将 jenkins 用户添加到主机上的 docker 组(因为主机上没有 jenkins 用户,仅在容器中),我也无法在容器内运行此命令(因为容器不知道任何 docker 组)。有关如何解决此问题的任何提示?
【问题讨论】:
-
在运行容器时尝试添加
--privilegedagrument。命令看起来像docker run -v /var/run/docker.sock:/var/run/docker.sock -p 8080:8080 -p 50000:50000 -d --name jenkins --restart unless-stopped --privileged jenkins