Permission Denied while try to connect to Docker Daemon while running Jenkins pipeline in Macbook

我试图在我的MacBook上运行Jenkinspipe道作业。 我也有docker实例在本地运行。 最初我在运行Jenkins Job时遇到了“ docker command not found ”错误。 我通过添加一个符号链接“ ln -f -s /Applications/Docker.app/Contents/Resources/bin/*/usr/local/bin

我也应用了这两个更改,以便jenkins用户有权访问docker目录

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

我收到以下错误

尝试连接到Unix上的Docker守护进程套接字时拒绝了权限:///var/run/docker.sock:获取http://%2Fvar%2Frun%2Fdocker.sock/v1.27/containers/openjdk:8 / json :拨号unix /var/run/docker.sock:连接:权限被拒绝[pipe道] sh [test]运行shell脚本+ docker pull openjdk:8警告:无法从守护进程获取默认registry端点(尝试访问时拒绝了权限在unix:///var/run/docker.sock连接到Docker守护进程套接字:获取http://%2Fvar%2Frun%2Fdocker.sock/v1.27/info :dial unix /var/run/docker.sock :连接:权限被拒绝)。 使用系统默认值: https ://index.docker.io/v1/在unix:///var/run/docker.sock尝试连接到Docker守护进程套接字时,拒绝了权限:发布http://%2Fvar% 2Frun%2Fdocker.sock / v1.27 / images / create?fromImage = openjdk&tag = 8 :dial unix /var/run/docker.sock:connect:permission denied [Pipeline]} [Pipeline] // node [Pipeline] End ofpipe道错误:脚本返回退出代码1完成:失败

这是一个docker许可问题。 将jenkins用户添加到docker组中,如下所示:

usermod -aG docker ${USER}

有任何方法可以解决这个问题,上周我遇到了,我解决了,但是用docker-compose这个设置可以复制到docker ,你可以创build一个共享卷,指向docker.sock的位置在你的主机/var/run/docker.sock到你的容器/var/run/docker.sockdocker.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 

为了运行良好,你必须赋予用户许可 sudo chown $USER:$USER /var/run/docker.sock和docker的组合,就像Innocent Anigbo提到的一样。

这工作对我来说:docker运行 – rm -p 8080:8080 -p 4040:4040 -v /var/run/docker.sock:/var/run/docker.sock -v $ PWD / jenkins_home:/ var / jenkins_home logimethods /jenkins