加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何解决Jenkins触发时的Docker权限错误

发布时间:2020-12-16 03:44:28 所属栏目:安全 来源:网络整理
导读:我的Jenkins不是在Docker容器中运行,只是传统安装到VPS.执行简单的test project时出现以下错误.我使用的是Ubuntu 14,java 7和稳定的Jenkins.我尝试了我可以在谷歌上找到的所有方法,但无法让它工作. 我正在尝试执行这个shell docker build --pull=true -t nic

我的Jenkins不是在Docker容器中运行,只是传统安装到VPS.执行简单的test project时出现以下错误.我使用的是Ubuntu 14,java 7和稳定的Jenkins.我尝试了我可以在谷歌上找到的所有方法,但无法让它工作.

我正在尝试执行这个shell

docker build --pull=true -t nick/hello-jenkins:$GIT_COMMIT .

代码更改后.

这是错误:

Got permission denied while trying to connect to the Docker daemon socket at unix: ....
Started by user nicolas xu
Building in workspace /var/lib/jenkins/workspace/hello-Jenkins
 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url https://github.com/nicolasxu/hello-nick-jenkins.git # timeout=10
Fetching upstream changes from https://github.com/nicolasxu/hello-nick-jenkins.git
 > git --version # timeout=10
 > git fetch --tags --progress https://github.com/nicolasxu/hello-nick-jenkins.git +refs/heads/*:refs/remotes/origin/*
 > git rev-parse refs/remotes/origin/master^{commit} # timeout=10
 > git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
Checking out Revision d94ae21a8a2cf58ffc790dcad15bd851fb17df5a (refs/remotes/origin/master)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f d94ae21a8a2cf58ffc790dcad15bd851fb17df5a
 > git rev-list d94ae21a8a2cf58ffc790dcad15bd851fb17df5a # timeout=10
[hello-Jenkins] $/bin/sh -xe /tmp/hudson5076309502904684976.sh
+ docker build --pull=true -t nick/hello-jenkins:d94ae21a8a2cf58ffc790dcad15bd851fb17df5a .
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.27/build?buildargs=%7B%7D&cachefrom=%5B%5D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&labels=%7B%7D&memory=0&memswap=0&networkmode=default&pull=1&rm=1&shmsize=0&t=nick%2Fhello-jenkins%3Ad94ae21a8a2cf58ffc790dcad15bd851fb17df5a&ulimits=null: dial unix /var/run/docker.sock: connect: permission denied
Build step 'Execute shell' marked build as failure
Finished: FAILURE

我可以在控制台中运行’docker’作为root没问题,为什么jenkins无法尝试运行’docker’的shell命令?到底是怎么回事?完全迷茫…….

最佳答案
在您的VPS服务器终端中,执行此操作以将您的jenkins用户添加到docker组:

sudo usermod -aG docker jenkins

然后重新启动jenkins服务器以刷新组.

考虑到这可能产生的任何安全问题:

Warning: The docker group grants privileges equivalent to the root user. For details on how this impacts security in your system,see Docker Daemon Attack Surface.

请参阅docs

编辑(由@iger提到):只需确保从命令行重启Jenkins(即sudo service jenkins restart),但不要通过其余端点重启(http:/// restart)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读