我想在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?
有什么方法可以解决这个问题吗?感谢。
答案 0 :(得分:2)
除了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
中添加docker daemon
以启动Dockerfile
。我测试了CentOS 7.2
和docker 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命令。