泊坞窗内的docker,发布http错误

我正试图在docker中运行docker。 唯一的目的是实验性的,我绝不是试图实现任何function,我只是想检查从另一个docker运行时,docker执行的方式。

我通过boot2docker启动docker,然后启动一个简单的Ubuntu镜像。

$ docker run -t -i ubuntu /bin/bash 

然后我继续安装docker以及python。

 root@aa9263c874e4: apt-get update root@aa9263c874e4: apt-get install -y docker.io python2.7 

它能够连接到互联网,因为它执行这个apt-get。 当我尝试从docker中启动一个docker实例时,出现以下错误:

 root@aa9263c874e4: sudo docker run -t -i ubuntu /bin/bash 2015/01/09 08:59:09 Post http:///var/run/docker.sock/v1.12/containers/create: dial unix /var/run/docker.sock: no such file or directory 

任何想法,我错过了什么? 这似乎很奇怪,我得到一个post错误,因为它似乎能够通过apt-get之前连接到互联网。

我之前就如何在Docker中运行Docker容器回答了类似的问题。

在docker里面运行docker是绝对有可能的。 主要的是你run外部容器的额外特权 (以--privileged=true ),然后在该容器中安装--privileged=true

请查看此博客post了解更多信息: Docker-in-Docker 。

这个条目描述了一个很好的用例。 博客描述了如何在Jenkinsdocker集装箱内build立docker集装箱。

所以,我相信你的POST问题与连接到互联网没有任何关系,因为容器正在试图与docker socket通信。 要解决这个问题,只需在启动时在外容器中添加--privileged=true标志,如下所示:

 docker run --privileged=true ...