无法使用JENKINS用户调用DOCKER

时间:2019-05-21 12:44:53

标签: macos shell docker jenkins

我正在尝试使用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:权限被拒绝

我希望运行此代码而不会出现错误。只有到那时,我的詹金斯管道才会完整。

1 个答案:

答案 0 :(得分:1)

  1. 要查找docker的安装路径,只需运行which docker。通常,它将已经安装在标准PATH中的某个位置,因此Jenkins可能已经可以访问。当您收到权限被拒绝的错误消息时,看起来Jenkins已经在使用正确的docker可执行文件。

  2. 根据您使用的发行版或操作系统,您很可能需要将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用户添加到该组。