我是码头工人的新手。我只是试着在我的本地机器(Ubuntu 16.04)上使用docker和Jenkins。
我用下面的管道脚本配置了一个新作业。
node {
stage('Build') {
docker.image('maven:3.3.3').inside {
sh 'mvn --version'
}
}
}
但是它失败了,错误如下:
在unix:///var/run/ Docker .sock试图连接到Docker守护进程套接字时被拒绝
我有Jenkins在Docker中运行,并连接Jenkins从主机Ubuntu 16.04通过卷到/var/run/docker.sock使用Docker套接字。
对我来说,解决方案是:
1) Jenkins的Docker容器内部(Docker exec - Jenkins bash on host machine)
usermod -a -G docker jenkins
chmod 664 /var/run/docker.sock
service jenkins restart (or systemctl restart jenkins.service)
su jenkins
2)主机上:
sudo service docker restart
664表示-对组中的所有者和用户进行读写(但不执行)。
方法01:—更安全的方法
sudo usermod -aG docker ${USER}
若要应用新的组成员资格,请从服务器注销并返回,或键入以下内容:
su - ${USER}
系统将提示您输入用户密码继续。
确认您的用户现在已添加到docker组,输入以下命令:
id -nG
方法02:-不建议用于公共部署(不安全)
chmod 777 /var/run/docker.sock
或使用
sudo chown root:docker /var/run/docker.sock