Docker里面的Docker(没有命令行)

我想在docker镜像里面运行docker守护进程。 我知道我可以通过在运行Docker镜像时暴露外部docker进程来轻松实现这一点,但不幸的是,我无法控制镜像的运行方式。 我不能使用DIND。

因此,我想在Dockerfile或某个脚本中启动docker服务,这是我的入口点。 我试过调用命令:

CMD service docker start 

在图像下载并安装docker之后,在一些脚本start.sh包含这个命令并调用它:

 ENRYPOINT ["path/to/script/start.sh"] 

没有一个工作。 是否可以根据需要运行docker,或者我正在做的事情不正确,或者在我的执行环境中是不可能的?

根据你的要求,你不能。

要在Docker容器中运行Docker服务,您需要修改容器的启动方式,以赋予外部docker服务默认限制的内部docker服务特权。

我会build议使用DIND容器(Docker中的Docker)

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

链接到Docker Hub: https : //hub.docker.com/_/docker/