我正在尝试使用Shell运行docker命令作为jenkins作业的一部分。我收到标准错误说明 “尝试在unix:///var/run/docker.sock上连接到Docker守护进程套接字时,拒绝获得权限:获取http://%2Fvar%2Frun%2Fdocker.sock/v1.39/images/json:拨打unix /var/run/docker.sock:连接:拒绝权限”
我将需要一些帮助 1.如何找到可以添加到JENKINS全局配置中的docker安装路径 2.解决此权限问题的解决方法(以sudo用户/任何其他特定用户身份运行)
我已经尝试过将JENKINS用户添加到admin组,staff组,已设置管理员中。但是,实际上没有任何帮助。我仍然收到标准错误
也在终端上尝试了以下代码 sudo -u jenkins码头工人图像
输出: 尝试在unix:///var/run/docker.sock上连接到Docker守护程序套接字时,获得了权限被拒绝:获取http://%2Fvar%2Frun%2Fdocker.sock/v1.39/images/json:拨打unix /var/run/docker.sock:connect:权限被拒绝>
我希望运行此代码而不会出现错误。只有到那时,我的詹金斯管道才会完整。
答案 0 :(得分:1)
要查找docker的安装路径,只需运行which docker
。通常,它将已经安装在标准PATH中的某个位置,因此Jenkins可能已经可以访问。当您收到权限被拒绝的错误消息时,看起来Jenkins已经在使用正确的docker可执行文件。
根据您使用的发行版或操作系统,您很可能需要将jenkins用户添加到docker
组中,例如sudo usermod -aG docker jenkins
。要找出所需的组,请运行:
$ ls -l /var/run/docker.sock
srw-rw---- 1 root docker 0 Apr 30 16:20 /var/run/docker.sock
在第二行中,您看到docker.sock所属的组。将jenkins用户添加到该组。