2017-08-31 60 views
0

我有一个Dockerfile以下:一个多克尔容器内安装泊坞=> d-总线连接错误

RUN sudo apt-get install -y docker-ce 
RUN sudo systemctl start docker 

当我建立图像,我得到这样的输出:

Step 14/43 : RUN sudo apt-get install -y docker-ce 
---> Using cache 
---> b1a8830d0596 
Step 15/43 : RUN sudo systemctl start docker 
---> Running in eff2d9d01762 
Failed to get D-Bus connection: Unknown error -1 
The command '/bin/sh -c sudo systemctl start docker' returned a non-zero code: 1 

任何人知道这个D-Bus连接错误是关于什么的?

+0

你想完成什么?在Docker内部安装Docker? –

+0

是的,没错。我了解到名为“docker:dind”的Docker镜像,所以我一直在尝试使用它来代替上述内容。 “dind”意思是“码头工人”。 –

+0

你想要达到什么目的?对于CI \ CD?由于此[Hub](https://hub.docker.com/_/docker/)上已有图像。 –

回答

1

从Docker集线器中取出Docker镜像为docker image pull docker,您将获得预装了Docker的镜像。需要注意的是,你必须安装** docker.sock *音量的容器是很重要的,如:

docker container run --rm -it -v /var/run/:/var/run docker

由于这种图像不拿出一个码头工人守护程序本身。您必须将主机的守护进程作为卷挂载到容器,以便可以访问同级容器而不是子容器。这样可以避免需要在映像中自己安装Docker,并且可以很好地与Container CI \ CD(例如Docker中的Jenkins)配合使用。