从docker运行docker时权限被拒绝/var/run/docker.sock

时间:2019-12-11 11:54:44

标签: docker docker-in-docker

我有一个容器,我需要在其中使用另一个容器(第一个容器保存了我的构建环境,并且某些项目是通过创建一个容器来构建的)。我阅读了有关避免使用docker-in-docker的信息,并遵循以下建议:https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/因此,我像这样运行容器:

docker run -v /var/run/docker.sock:/var/run/docker.sock -ti 6519bf891fee bash

这就是我想要的,试图在容器内运行docker hello-world:

root@345cf0f934c3:/# docker run hello-world
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run --help'.

此外,尝试cat /var/run/docker.sock会导致:

cat: /var/run/docker.sock: No such device or address

尽管ls -l /var/run/docker.sock

srw-rw----. 1 root root 0 Nov 29 11:58 /var/run/docker.sock

我在主机和容器中都以root用户身份运行,并且都将docker用户添加到了sudoers组中。例如。在容器内:

srw-rw----. 1 root root 0 Nov 29 08:58 /var/run/docker.sock
sudo:x:27:build,docker

1 个答案:

答案 0 :(得分:0)

答案是:使用--privileged=true

运行docker