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目录
- chmod -R 777 /Users/myUserName/Library/Containers/com.docker.docker/
- 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.sock
的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
为了运行良好,你必须赋予用户许可 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