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

新手上路,请多包涵

我是码头工人的新手。我只是尝试在我的本地机器(Ubuntu 16.04)中使用 docker 和 Jenkins。

我使用以下管道脚本配置了一个新作业。

 node {
    stage('Build') {
      docker.image('maven:3.3.3').inside {
        sh 'mvn --version'
      }
    }
}

但它失败并出现此错误:

尝试在 unix:///var/run/docker.sock 连接到 Docker 守护进程套接字时获得权限被拒绝

在此处输入图像描述

原文由 Ponsuyambu 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.7k
2 个回答

如果使用詹金斯

用户 jenkins 需要添加到组 docker

 sudo usermod -a -G docker jenkins

然后重启詹金斯。

否则

如果您因为从 docker 收到此消息而遇到堆栈溢出的问题,但您没有使用 jenkins,则很可能错误是相同的:您的非特权用户不属于 docker 组。

你可以做:

 sudo usermod -a -G docker [user]

[user] 所在的位置插入您的用户名。

您可以通过执行 grep docker /etc/group 来检查它是否成功,并看到如下内容:

 docker:x:998:[user]

在其中一条线上。

然后将您的用户组 ID 更改为 docker (以避免必须注销并再次登录):

 newgrp docker

原文由 austingray 发布,翻译遵循 CC BY-SA 4.0 许可协议

我的第一个解决方案是:

 usermod -aG docker jenkins
usermod -aG root jenkins
chmod 664 /var/run/docker.sock

但它们都不适合我,我试过:

 chmod 777 /var/run/docker.sock

这行得通,但我不知道这是否是正确的电话。

原文由 Kevin Garay 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题