【问题标题】:Installing Docker within a Docker container => D-Bus connection error在 Docker 容器中安装 Docker => D-Bus 连接错误
【发布时间】:2018-02-08 19:52:02
【问题描述】:

我在 Dockerfile 中有以下内容:

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 连接错误是关于什么的吗?

【问题讨论】:

  • 你想要完成什么?在 Docker 中安装 Docker?
  • 是的,没错..我了解了名为“docker:dind”的 Docker 镜像,所以我一直在尝试使用它而不是上面的。 “dind”的意思是“码头工人”。
  • 你想要什么目的?对于 CI\CD?因为hub 上已经有一张图片。
  • 谢谢,您能否添加有关如何使用 docker 映像本身的答案?这将对其他人有所帮助,并会为您投票,谢谢

标签: docker dockerfile dbus


【解决方案1】:

从 Docker hub 拉取 Docker 镜像为docker image pull docker,你会得到一个预装了 Docker 的镜像。请务必注意,您必须将 **docker.sock* 作为卷安装到容器中,例如:

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

因为这个镜像本身没有 Docker 守护进程。您必须将主机的守护程序作为卷安装到容器中,以便您可以访问同级容器而不是子容器。这避免了自己在镜像中安装 Docker 的需要,并且也可以与 Container CI\CD(例如 Docker 中的 Jenkins)很好地配合使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-24
    • 2014-10-27
    • 1970-01-01
    • 2017-11-03
    • 1970-01-01
    • 2017-11-11
    • 1970-01-01
    • 2015-04-14
    相关资源
    最近更新 更多