docker - 尝试在 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: 权限被拒绝。
我尝试了将用户添加到组中的解决方案,但仍然失败
任何帮助是极大的赞赏。
谢谢
解决方案
我得到了这个工作。
将用户添加到组停止并重新启动容器
推荐阅读
- mql4 - MQL 程序意外终止
- android - 我尝试使用 SmsRetrieverClient 从收到的短信中读取 OTP,但广播接收器未调用
- javascript - 将解析的日期与 momentjs 进行比较
- python - 有什么简单的方法可以用 QPainterPath 或在 PyQt 中使用类似的东西来绘制复杂的东西
- php - 与 php 的 ssh 连接
- autodesk-forge - 具有纹理转换问题的 Forge 模型
- c++ - 将结构上无序集中的选定字段存储到向量
- php - 我们可以使用 PHP codeigniter 作为 Web 开发框架并为混合应用程序发送 API 吗?
- c++ - 如何解决继承类中注册的 Q_ENUM?
- android - 使用 Itemtouchhelper 更改房间数据库的顺序