centos - 在 docker 容器中运行 docker?

标签 centos docker fedora

我正在使用 docker 容器来构建我的软件并将其部署到 ec2 的集合中。在部署脚本中,我构建了我的软件,然后将其打包到 docker 镜像中。图像被推送到我的私有(private)注册表,由我的生产 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 [你的镜像]

https://github.com/sameersbn/docker-gitlab使用这种方法来启动 docker 容器,看看这张图片。

你也可以看看: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

关于centos - 在 docker 容器中运行 docker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26239116/

相关文章:

python - Python多处理过程中的错误

php - 无法构建 Dockerfile - 无法找到包

android - 构建器 "Command ' ['ant' , 'debug' ]' returned non-zero exit status 1"

fedora - fatal error :y. tab.h:fedora 上没有这样的文件或目录

无法将 BLAS 库与 Clion 2016.1.2 和 Fedora 22 链接,获取 undefined reference

linux - CentOS:如何创建安全的用户帐户来托管网站?

Linux 中的 Docker 机器错误

sql-server - Linux + Django + SQLServer

docker - docker --rm仅当退出代码为零时

当从 linux 样式路径转换时,Docker 安装的卷将 ;C 添加到 Windows 路径的末尾