我想在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守护程序而导致的,如显示的错误消息。
以下是显示如何使其手动工作的步骤:
使用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?
在这个容器里启动docker daemon
:
root@82d6eab69331:~# /usr/bin/dockerd -H unix:///var/run/docker.sock > dockerd.log 2>&1 &
检查日志文件以确保它正确启动,然后尝试docker images
:
root@82d6eab69331:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE
所以你可能需要添加entrypoint
来启动你的Dockerfile
中的Dockerfile
docker daemon
。 我测试了CentOS 7.2
和docker 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”。