我想使用Docker-in-Docker但是--privileged可以对设备进行全面访问。有没有办法使用卷和封面添加等组合来运行它?
答案 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映像版本。