2017-08-31 57 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)配合使用。