[英]Run docker inside a docker container?
我正在使用 docker 容器来构建我的软件并将其部署到 ec2 的集合中。 在部署脚本中,我构建了我的软件,然后将其打包到 docker 映像中。 映像被推送到我的私人注册表,由我的生产 ec2 拉取,然后运行。 所以基本上我需要在 docker 容器中运行 docker。
问题是我实际上无法在我的容器上启动 docker。 如果我尝试
service docker start
我得到
bash: service: command not found
如果我尝试
docker -d
我得到
2014/10/07 15:54:35 docker daemon: 0.11.1-dev 02d20af/0.11.1; execdriver: native; graphdriver:
[e2feb6f9] +job serveapi(unix:///var/run/docker.sock)
[e2feb6f9] +job initserver()
[e2feb6f9.initserver()] Creating server
2014/10/07 15:54:35 Listening for HTTP on unix (/var/run/docker.sock)
[error] attach_loopback.go:42 There are no more loopback device available.
loopback mounting failed
[e2feb6f9] -job initserver() = ERR (1)
2014/10/07 15:54:35 loopback mounting failed
docker 容器上不存在 service 命令,因此我无法启动 docker。 我不确定我现在应该做什么来启动 docker 所以我有点卡在这里,任何帮助表示赞赏。
多一点信息
主机正在运行 fedora 20(最终将在 ec2 上运行 amazon linux)
Docker 容器正在运行 centos 7.0
主机正在运行 Docker 版本 1.2.0,构建 fa7b24f/1.2.0
容器正在运行 docker-0.11.1-22.el7.centos.x86_64
不运行“docker inside docker”并在您的主机上运行 docker,而是从您的 docker 容器内运行怎么样? 只需挂载您的 docker.sock 和 docker 二进制文件:
docker run -v /var/run/docker.sock:/run/docker.sock -v $(which docker):/bin/docker [your image]
https://github.com/sameersbn/docker-gitlab使用这种方法来启动 docker 容器,看看这张图片。
你也可以看看: https : //registry.hub.docker.com/u/mattgruter/doubledocker/
2016 年 7 月更新
最新的方法是使用docker:dind
图像,如下所述: https docker:dind
简短的摘要:
$ docker run --privileged --name some-docker -d docker:dind
然后: $ docker run --rm --link some-docker:docker docker info
: $ docker run --rm --link some-docker:docker docker info
虽然在几乎所有情况下,我都建议遵循 @cthulhu 的回答而不是运行“docker in docker”,但在您必须的情况下(例如,针对多个 docker 版本进行测试的测试套件),请使用以下内容创建额外的环回设备:
#!/bin/bash
for i in {0..6}
do
mknod -m0660 /dev/loop$i b 7 $i
done
(取自 Docker问题 #7058的线程)
您可以使用dind
容器内简单地运行dind
。 试试 Jerome 的这张图片,如下:
docker run --privileged -t -i jpetazzo/dind
查看此页面了解更多详情:
https://github.com/jpetazzo/dind
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.