我正在尝试将docker集成到我的CI平台中。在使用Docker-in-a-docker
解决方案正常运行之后,我遇到了一位Docker
维护人员的博客文章,他说我的CI不是使用Docker-in-a-docker
解决方案,而是应该只需将/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/
路径中。
但是,当我运行命令docker
时,机器将返回以下消息:
bash: docker: command not found
根据作者的指示,是否有人知道我缺少什么才能完成这项工作?
我在新的CentOS 7盒子上使用Docker v. 1.11.1
。
提前致谢
答案 0 :(得分:0)
今天想出来。只要将docker
守护程序+依赖项添加到容器中,上述命令就会起作用。在我的情况下,我最终编写了一个简单的Dockerfile
,其中还包括以下行:
RUN curl -sSL https://get.docker.com/ | sh
这在容器上安装了Docker,当我从容器中运行docker images
时,我可以看到来自主机的所有图像。我现在能够使用容器中的所有docker
命令。