如何在docker容器中安装docker?

时间:2017-06-09 07:30:11

标签: docker debian dockerfile

这是我的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'.

如何解决这个问题?我想在主机docker容器中建立docker容器。

4 个答案:

答案 0 :(得分:1)

使用Docker-in-Docker执行此任务。他们已经为你解决了许多问题。

答案 1 :(得分:1)

尝试在Bamboo Server映像中安装Docker时遇到类似的问题。要解决这个问题:

  1. 首先删除以下行:从您的Dockerfile
  2. 运行docker run hello-world
  3. 最简单的方法是通过使用-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/