这是我的Dockerfile:
FROM golang
# RUN cat /etc/*release
RUN apt-get update
RUN apt-get -y install apt-transport-https ca-certificates curl gnupg2 software-properties-common
RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
RUN add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
RUN apt-get update
RUN apt-get -y install docker-ce
RUN docker run hello-world
golang Dockerfile是官方的,它基于
Debian GNU/Linux 8 (jessie)
所以我通过检查Docker Install Tutor(Debian)
中的安装步骤来记下这个Dockerfile但输出是
Step 8/8 : RUN docker run hello-world
---> Running in b183b8cc5d10
docker: Cannot connect to the Docker daemon at
unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.
答案 0 :(得分:1)
使用Docker-in-Docker执行此任务。他们已经为你解决了许多问题。
答案 1 :(得分:1)
尝试在Bamboo Server映像中安装Docker时遇到类似的问题。要解决这个问题:
Dockerfile
-v
标志进行绑定安装或使用Docker Compose
安装卷来公开Docker套接字: docker run -v /var/run/docker.sock:/var/run/docker.sock ...
答案 2 :(得分:0)
尝试在执行任何docker命令之前启动docker服务。 添加此行
RUN bash service docker start
此行上方的Dockerfile:
RUN docker run hello-world
答案 3 :(得分:0)
最简单的方法是将https://hub.docker.com/_/docker/中的官方Docker-in-Docker映像与:dind
标签一起使用(这是已经提到的项目Hendrikvh的继承者)。
您肯定还需要使用--priviledged
标志:
docker run --privileged --name yourDockerContainerNameHere -d docker:dind
因此,您的Docker-in-Docker实验应该可以工作-但请注意可能会遇到的许多障碍:https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/