首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在docker容器中运行docker?

在docker容器中运行docker?
EN

Stack Overflow用户
提问于 2014-10-07 23:02:21
回答 3查看 21.1K关注 0票数 30

我使用docker容器来构建我的软件并将其部署到EC2的集合中。在部署脚本中,我构建我的软件,然后将其打包到docker映像中。镜像被推送到我的私有注册表,由我的生产EC2拉取,然后运行。因此,从本质上讲,我需要在docker容器中运行docker。

问题是我实际上不能在我的容器上启动docker。如果我尝试

代码语言:javascript
复制
service docker start

我得到了

代码语言:javascript
复制
bash: service: command not found

如果我试着

代码语言:javascript
复制
docker -d

我得到了

代码语言:javascript
复制
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

EN

回答 3

Stack Overflow用户

发布于 2014-10-10 03:47:08

不运行'docker on docker‘而在你的主机上运行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使用这种方法来旋转码头容器,看看这张图。

您还可以查看:https://registry.hub.docker.com/u/mattgruter/doubledocker/

2016年7月的更新

最新的方法是使用docker:dind图像,如下所述:https://hub.docker.com/_/docker/

简短摘要:

$ docker run --privileged --name some-docker -d docker:dind

然后:$ docker run --rm --link some-docker:docker docker info

票数 45
EN

Stack Overflow用户

发布于 2015-05-19 21:43:44

虽然在几乎所有的情况下,我都会建议遵循@cthulhu的答案,而不是运行"docker in docker",但在必须运行的情况下(例如,针对多个docker版本进行测试的测试套件),可以使用以下方法来创建额外的环回设备:

代码语言:javascript
复制
#!/bin/bash

for i in {0..6}
do
    mknod -m0660 /dev/loop$i b 7 $i
done

(取自Docker Issue #7058的线程)

票数 3
EN

Stack Overflow用户

发布于 2015-07-10 08:17:05

您可以简单地使用dind在docker容器中运行docker。尝试来自Jerome的此图像,如下所示:

docker run --privileged -t -i jpetazzo/dind

有关更多详细信息,请查看此页面:

https://github.com/jpetazzo/dind

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26239116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档