我们在做基于docker的Devops,会遇到希望把jenkins之类的持续集成工具dokcer化的问题,即:docker in docker.请问你们的解决方案是什么?另外还有个问题,docker与devops的结合,通常认为不只是技术层面上的事情,也是质量管理,组织方式等的变革,请问这方面能否分享你们的最佳实践?
小编只是大自然的搬运工,本问答整理自阿里技术天团正在解答Docker技术难题
Jenkins方面,可以看看我们的这篇文章 https://yq.aliyun.com/articles/53971
传统的持续集成分发的最小单元是代码,基于容器的持续集成分发的最小单元是镜像,这可能是最大的区别,但是这并不是说一刀就将传统的开发模型与基于容器的开发模型切开,我们以前的流程可能是构建、测试、部署、验证、上线,基于容器后,这些步骤还是相同的,唯一的区别是实现的方式不同。关于docker in docker我理解是您希望通过jenkins的slave构建镜像,而您的slave也是基于容器的,这个问题的解法是这样的,docker in docker没问题,但是里面的docker和外边的docker是父子关系还是兄弟关系有很大的部分,我们建议的方式是您可以通过volume挂载的方式,用/var/run/docker.sock:/var/run/docker.sock这种方式,使内部的docker成为外部的docker的一个兄弟节点。关于最佳实践,其实最佳实践是特定场景下的最优解决方案,上面太公提供的那篇文章是剥离的最小化的一个场景,您可以基于这个场景丰富并满足自己的需求。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。