小编mxy*_*ica的帖子

权限被拒绝错误从Docker Ubuntu容器内部以非root用户身份调用Mac主机上的Docker

我试图在运行jenkins docker容器(jenkins:latest)内部运行Docker for Mac 17.06.0-ce-mac17的OSX主机上调用docker,按照http://jpetazzo.github.io/中描述的过程2015/09/03/do-not-use-docker-in-docker-for-ci /.  

我将/var/run/docker.sock挂载到容器中,我在其中粘贴了一个ubuntu docker二进制文件,并且它能够执行 - 但是当我运行例如"docker ps"时,从用户"jenkins"的容器内部我得到

在尝试连接到unix上的Docker守护程序套接字时获得权限被拒绝:///var/run/docker.sock:获取http://%2Fvar%2Frun%2Fdocker.sock/v1.30/containers/json?all = 1:拨打unix /var/run/docker.sock:connect:权限被拒绝.  

如果我以root身份连接到容器(docker exec -u 0),它可以工作.

我需要jenkins用户才能运行它.我尝试添加一个docker组并在ubuntu容器中添加jenkins,但这没有帮助,因为它与外部无关,而Docker for Mac无法像在Linux上运行这样做,你可以做半容易uid/gid匹配.我想发布这个容器,所以对我的Docker for Mac安装的部分内容进行修复并不能帮助我.如果我能帮助它,我宁愿不以root身份运行整个jenkins设置.(我也试过运行容器作为特权,但没有帮助.)

根据Permission Denied中的建议,在Macbook中运行Jenkins管道时尝试连接到Docker守护程序时,我手动将容器内的/var/run/docker.sock文件与jenkins联系起来,现在jenkins可以运行docker.但是我无法想出一个可分发容器的解决方案 - 我不能在Dockerfile中做这个,因为该文件还不存在,并且填入入口点没有帮助,因为它作为jenkins运行.

为了构建和运行一个图像,我需要做什么才能在容器内部以非root用户身份在Mac上运行外部docker容器?

macos ubuntu jenkins docker docker-in-docker

6
推荐指数
1
解决办法
5805
查看次数

标签 统计

docker ×1

docker-in-docker ×1

jenkins ×1

macos ×1

ubuntu ×1