在ubuntu中运行docker build:16.04 docker

时间:2017-03-29 05:56:40

标签: ubuntu docker

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

所以,我尝试在https://docs.docker.com/engine/installation/linux/ubuntu/之后创建一个docker安装的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创建的docker镜像上运行docker images或其他命令时,会发生错误。

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

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

3 个答案:

答案 0 :(得分:2)

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

以下是显示如何手动操作的步骤:

  1. 使用从Dockerfile

    构建的图片开始并输入容器

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

  2. 这就是你遇到的问题:

    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

    3. 因此,您可能需要在entrypoint中添加docker daemon以启动Dockerfile。我测试了CentOS 7.2docker 1.12的环境。希望这对你有所帮助: - )

答案 1 :(得分:0)

AWS CodeBuild不会“[..]允许客户引入他们自己的Docker-in-Docker图像[..]”。

  

我们目前仅支持Docker-in-Docker(dind)和官方CodeBuild图像

Source(2017年1月12日):

答案 2 :(得分:0)

无法连接到Docker守护程序 - 您可能需要运行... 也许,你可以看到结果这个命令。

$ sudo docker images

您应该在docker组中添加您的用户。 然后,您可以使用没有'sudo'的docker命令。

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

接下来,您必须在操作系统中退出。 最后,当您登录时,可以使用不带“sudo”的docker命令。