我使用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容器,所以我不能启动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里面的docker”和运行docker在您的主机,但从您的docker容器内?只是挂载你的docker.sock和docker二进制:
docker run -v /var/run/docker.sock:/run/docker.sock -v $(其中docker):/ bin / docker [your image]
https://github.com/sameersbn/docker-gitlab使用这种方法来旋转docker容器,看看这个图像。
你也可以看看:https://registry.hub.docker.com/u/mattgruter/doubledocker/
更新于2016年7月
最新的方法是使用docker:dind image,如下所述:
https://hub.docker.com/_/docker/
简短的摘要:
$ docker run –privileged –name some-docker -d docker:dind
接着:
$ docker run –rm –link some-docker:docker docker info