首页 文章

在Macbook中运行Jenkins管道时尝试连接到Docker守护程序时权限被拒绝

提问于
浏览
4

我试图在我的macbook中运行Jenkins管道作业 . 我也有本地运行的docker实例 . 最初我得到了“ docker command not found " error while running the Jenkins Job. I fixed the error by adding a symlink " ln -f -s /Applications/Docker.app/Contents/Resources/bin/ /usr/local/bin* ”

我还应用了这两个更改,以便jenkins用户可以访问docker目录

  • chmod -R 777 /Users/myUserName/Library/Containers/com.docker.docker/

  • chmod -R 777 /Users/myUserName/Library/Containers/com.docker.helper/

I am getting below errors

尝试在unix上连接到Docker守护程序套接字时获得权限被拒绝:///var/run/docker.sock:获取http://%2Fvar%2Frun%2Fdocker.sock/v1.27/containers/openjdk:8 / json:拨打unix /var/run/docker.sock:connect:权限被拒绝[Pipeline] sh [test]运行shell脚本docker pull openjdk:8警告:无法从守护进程获取默认注册表 endpoints (尝试拒绝权限被拒绝)在unix:///var/run/docker.sock连接到Docker守护程序套接字:获取http://%2Fvar%2Frun%2Fdocker.sock/v1.27/info:拨打unix /var/run/docker.sock :connect:权限被拒绝) . 使用系统默认值:https://index.docker.io/v1/尝试在unix:///var/run/docker.sock连接到Docker守护程序套接字时获得权限被拒绝:发布http://%2Fvar% 2Frun%2Fdocker.sock / v1.27 / images / create?fromImage = openjdk&tag = 8:拨打unix /var/run/docker.sock:connect:权限被拒绝[Pipeline]} [Pipeline] // node [Pipeline] End of Pipeline ERROR:脚本返回退出代码1完成:FAILURE

3 回答

  • 0

    这是一个docker权限问题 . 将jenkins用户添加到docker组,如下所示:

    usermod -aG docker ${USER}

  • 1

    有什么方法可以解决这个问题,我上周面对它,我解决了但是 docker-compose 这个设置可以复制到 docker ,你可以创建一个共享卷,指向主机 /var/run/docker.sockdocker.sock 的位置到你的 docker.sock 的位置容器 /var/run/docker.sock . 像这样的东西:

    version: '2'
    services:
      jenkins:
        build:
          context: ./jenkins
        ports:
          - "8080:8080"
        expose:
          - "8080"
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock
          - /usr/bin/docker:/usr/bin/docker
          - /usr/local/bin/docker-compose:/usr/local/bin/docker-compose
    
      nginx:
        build:
          context: ./nginx
        container_name: "prueba"
        links:
          - jenkins
        ports:
          - "80:80"
        depends_on:
          - jenkins
    

    为了运作良好,您必须将 socket sudo chown $USER:$USER /var/run/docker.sockdocker 组的用户权限提供给 docker ,如Innocent Anigbo所述 .

  • 1

    这对我有用:docker run --rm -p 8080:8080 -p 4040:4040 -v /var/run/docker.sock:/var/run/docker.sock -v $ PWD / jenkins_home:/ var / jenkins_home logimethods /詹金斯

相关问题