在(Docker里的)Jenkins里运行Docker

在本文中,我们将快速了解一下如何在一个容器里装载Docker sock以便创建其“兄弟”容器。我的一个同事称之为DooD(Docker-outside-of-Docker),以区别于DinD(Docker-in-Docker),后者是在容器中安装一个完整的隔离的Docker版本。DooD比DinD简单得多(至少在配置方面),尤其是能重用并缓存宿主上的镜像。反之,如果你想实现镜像对宿主的隐藏和隔离,则最好使用DinD。
dockerfile:基于docker
FROM jenkins:1.596

USER root
RUN apt-get update \
  && apt-get install -y sudo \
  && rm -rf /var/lib/apt/lists/*
RUN echo "jenkins ALL=NOPASSWD: ALL" >> /etc/sudoers

USER jenkins
我们需要赋予jenkins用户sudo权限以便能在容器内运行Docker命令。当然,也可以将jenkins用户加入到Docker组中来避免在所有Docker命令前使用‘sudo’,不过由于这个组gid的不同会造成不可移植(如Pini文中所述)。
实际操作,在原有容器中,用root用户进入,然后依次执行上面RUN中的命令,然后用docker commit 命令提交修改好的容器,生成新的镜像。下次使用时,使用新的镜像启动

参考资料:
 
 

在(Docker里的)Jenkins里运行Docker

http://www.dockone.io/article/431

基于Docker版jenkins的持续集成环境搭建(二)

http://www.jianshu.com/p/33896fdaad77

用Dockerfile创建镜像

http://www.jianshu.com/p/480e8a78a132


jenkins 里面运行docker命令的注意点
https://stackoverflow.com/questions/29380344/docker-exec-it-returns-cannot-enable-tty-mode-on-non-tty-input



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值