我可以在不使用--privileged标志的情况下运行Docker-in-Docker

时间:2015-04-13 18:28:35

标签: security docker

我想使用Docker-in-Docker但是--privileged可以对设备进行全面访问。有没有办法使用卷和封面添加等组合来运行它?

3 个答案:

答案 0 :(得分:8)

不幸的是,你必须使用--privileged标志在Docker中运行Docker,你可以看看它们所说的official announcement这是{{1}的众多目的之一} flag。

基本上,在没有--privileged的情况下运行时,您需要更多访问主机系统设备才能运行docker。

答案 1 :(得分:5)

是的,你可以在没有--privileged标志的docker中运行docker。它涉及将docker socket插入容器,如下所示:

   docker run -it -v /var/run/docker.sock:/var/run/docker.sock \
               -v $(which docker):/bin/docker \
               alpine docker ps -a

将docker套接字和可执行文件安装到容器中并在alpine容器中运行docker ps -a。杰罗姆·佩塔佐尼(JérômePetazzoni)撰写了这个简单的例子并在--privileged旗帜上做了很多工作,这就是关于码头工人的码头工人的说法:

https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/

我一直在使用这种方法一段时间,它的效果非常好。

使用这种方法的警告是存储变得时髦。您最好使用数据卷容器或命名数据卷而不是挂载目录。由于您正在使用主机中的docker套接字,因此要在子容器中装入的任何目录都需要来自主机的上下文,而不是父容器。这很奇怪。我对数据量容器运气好了。

答案 2 :(得分:-1)

是的。 docker hub中有无地名的docker映像版本。

https://hub.docker.com/_/docker