如何在Docker(DIND)中运行Docker容器?

4
我将尝试在Docker内部使用Docker来运行另一个容器https://hub.docker.com/_/docker
当我运行以下命令:
docker run --privileged docker:stable-dind docker run hello-world

我收到了以下错误信息:
docker: 无法连接到unix:///var/run/docker.sock的Docker守护程序。 Docker守护程序是否正在运行? 请参阅'docker run --help'。
我可能遗漏了某些内容,如何在Docker中运行Docker?
1个回答

2
我认为你不能用一行代码实现这个功能(其他人可能会纠正我)。然而,如hub.docker.com/_/docker/所解释的那样,你可以将一个docker-in-docker容器作为后台守护进程(-d)启动,然后在其中启动其他容器。
要启动父容器,请运行:
docker run -d --name some-docker --privileged docker:stable-dind

名称 some-docker 是随意的。它将用于以后识别此容器。要在其内部启动容器,请运行
docker run  --link some-docker:docker docker run hello-world
< p > --link 选项暴露了父容器的网络端口并设置环境变量,使内部容器使用 dind 镜像中的 Docker。


也许我应该补充一下:在大多数情况下,有些人认为Docker-in-Docker是一个不好的解决方案。更多信息请参见这里这里 - sauerburger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接