docker环境下Jenkins持续集成(一)

来源:互联网 发布:中科恒业医学软件 编辑:程序博客网 时间:2024/05/22 08:01

在docker的的大环境下,讲究一切docker化,所以继续集成也顺应潮流docker化。

准备环境

从docker hub中pull下来jenkins的官方镜像,并运行起来。
此时,jenkins是运行docker容器中,要通docker配合完成持续集成,jenkins必须要能通知或者是调用docker命令。

在容器中调用docker的方式

现在的问题是,jenkins是运行docker容器中,无法感知docker的存在。

在Docker中使用Docker有三种方:

DooD(Docker-outside-of-Docker)

我们需要赋予jenkins用户sudo权限以便能在容器内运行Docker命令。当然,也可以将jenkins用户加入到Docker组中来避免在所有Docker命令前使用‘sudo’,不过由于这个组gid的不同会造成不可移植

DinD(Docker in Docker)

在docker镜像中要再安装docker服务。
此时,在容器中的docker和宿主机的docker是两个不同的程序,相互没有关联,DinD并不比使用特权模式的容器安全性高,不过确实能避免使用sudo。DinD最主要的劣势是你无法重用宿主缓存的镜像(不过如果需要为测试容器提供一个与宿主隔离的干净环境,这将很有用)。

使用HTTPS与Docker后台程序通讯

jenkins配置docker插件,并且docker进行端口配置。
通过HTTPS暴露socket不需要sudo并且可以使用宿主的镜像,但因为打开了端口增加了攻击面,可以说是最不安全的。

0 0
原创粉丝点击