在ubuntu:16.04 docker中运行docker build

我想在Docker容器中构build一个docker镜像。

所以,我试图在https://docs.docker.com/engine/installation/linux/ubuntu/上创build一个docker-installed的ubuntu docker镜像,但是失败了。

FROM ubuntu:16.04 RUN apt-get update && \ apt-get install -y \ apt-transport-https \ ca-certificates \ software-properties-common RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - RUN apt-key fingerprint 0EBFCD88 RUN add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" RUN apt-get update && \ apt-get install -y docker-ce 

当我在上面的Dockerfile创build的docker镜像上运行docker images或其他命令时,会发生错误。

 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 

有什么办法可以解决这个问题吗? 谢谢。

除了AWS环境的影响之外,您所遇到的问题是由于您未在容器中启动docker守护程序而导致的,如显示的错误消息。

以下是显示如何使其手动工作的步骤:

  1. 使用Dockerfile构建的映像启动并输入一个容器:

    docker run --privileged -it dind /bin/bash

这是你有的问题:

 root@82d6eab69331:/# docker images Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 
  1. 在这个容器里启动docker daemon

    root@82d6eab69331:~# /usr/bin/dockerd -H unix:///var/run/docker.sock > dockerd.log 2>&1 &

  2. 检查日志文件以确保它正确启动,然后尝试docker images

    root@82d6eab69331:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE

所以你可能需要添加entrypoint来启动你的Dockerfile中的Dockerfile docker daemon 。 我测试了CentOS 7.2docker 1.12 。 希望这可能对你有帮助:-)

AWS CodeBuild没有“[..]让客户自带Docker-in-Docker图像[..]”。

我们目前只支持Docker-in-Docker(dind)和官方的CodeBuild镜像

消息来源 (2017年1月12日):

无法连接到Docker守护进程 – 您可能需要运行…也许,您可以看到这个命令的结果。

 $ sudo docker images 

您应该将您的用户添加到docker组中。 然后,您可以使用docker命令而不使用“sudo”。

 $ sudo usermod -aG docker ${USER} $ sudo service docker restart 

接下来,你必须注销你的操作系统 。 最后,当你登录时,你可以使用docker命令而不使用“sudo”。