我在使用Docker作为CI的环境,基本上机器上有一个Jenkins CI服务器,并且使用相同的机器Docker套接字来创建用于CI的节点。
这一直很好地工作,直到最近我更新了Docker。我已经确定了问题,但似乎无法找到正确的方法来使其正常工作。
host $ docker exec -it myjenkins bash
jenkins@container $ docker ps
Got permission denied while trying to connect to the Docker daemon
socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.26/containers/json: dial unix /var/run/docker.sock: connect: permission denied
host $ docker exec -it -u root -it myjenkins bash
root@container $ docker ps
... docker ps from host container yay! ...
这是我的推测。我可以从容器内访问主机的docker套接字,但似乎无法授予jenkins用户权限。
我已经添加了docker组,并将jenkins用户添加到了docker组中。但仍然收到相同的错误。我已经重新启动了很多次,所以不太确定下一步该怎么做。
有没有一种方法可以强制为特定套接字上的用户授予权限?
--userns=host
也是同样的情况吗? - Nehal J Wani--userns=host
,您可以告诉我如何在 docker-compose 中指定它吗? - Brandon Bertelsen