CI和Docker-in-a-Docker

我正在尝试将docker集成到我的CI平台中。 在使用Docker-in-a-docker解决scheme正确工作之后,我遇到了一位Docker维护人员的博客文章,他在那里说,我没有为我的CI使用Docker-in-a-docker解决scheme,而是应该将/var/run/docker.sock挂载到我的CI容器。

https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/

简单地说,当你启动你的CI容器(Jenkins或者其他)时,不要用Docker-in-Docker一起黑客攻击,

docker run -v /var/run/docker.sock:/var/run/docker.sock ...

所以我试了一下 我运行了以下命令:

docker run -p 8080:8080 -p 50000:50000 -v /var/run/docker.sock:/var/run/docker.sock jenkins

使用jenkins作为我的CI容器。

当运行上述命令时,jenkins启动正常,我可以跳到容器中看到docker.sock文件位于/var/run/path中。

但是,当我运行命令: docker ,机器返回以下消息:

bash: docker: command not found

有没有人知道我错过了什么,以便按照作者的指示做这项工作?

我在新的CentOS 7盒子上使用了Docker v. 1.11.1

提前致谢

现在想出来了。 只要将docker守护进程+依赖项添加到容器,上面的命令就可以工作。 就我而言,我最终编写了一个简单的Dockerfile ,其中也包含了这一行:

RUN curl -sSL https://get.docker.com/ | sh

这在容器上安装了Docker,当我从容器中运行Docker docker images ,我可以看到来自主机的所有镜像。 我现在可以使用容器内的所有docker命令。