Docker的优点:
Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。
结构:客户端→Docker_Host(宿主机)→仓库
三个概念 容器→镜像→仓库
为什么使用Jenkins:
传统的部署项目,当项目完成后,需要我们自己从代码仓库中拉取代码到本地,完成打包,然后上传到服务器,然后配置项目的运行环境并启动。这样显然有一点的缺陷,我们在开发中存在的一些bug由于不能即时的发现,导致后期修复bug而存在导致连锁效应的风险。而且我们经常修改代码后,需要重新打包,然后上传到服务器,然后运行,当项目很多的时候,这样的一些重复性机械操作导致我们有些力不从心。
而我们使用Jenkins后真正的帮我们实现了自动化部署,当我们代码更新后,push到代码仓库中,我们只需在Jenkins的可视化界面点击构建项目,Jenkins便会根据我们配置的仓库地址自动拉取代码,自动打包,并运行,完成自动化部署。
上一篇文章【docker-jenkins搭建】centos7-docker安装(一)已经说明了docker的安装。
验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
docker version
Docker 安装Jenkins
1. 搜索仓库中的jenkins镜像
docker search jenkins
jenkins 表示你要搜索的镜像名,DESCRIPTION中包含jenkins的也会显示出来
2. 通过拉取jenkins镜像到本地images中
docker pull jenkins/jenkins
注意这里拉取的是jenkins/jenkins版本,因为先前的jenkins版本只有2.60,导致安装jenkins插件失败
拉取的时候可以指定版本,例如docker pull java:8 表示拉取的java版本为8; 不指定版本则默认为最新版本 latest
3. 启动jenkins容器
docker run --name autotest-jenkins -d -p 8081:8080 -p 8085:8085 jenkins/jenkins
–name myjenkins 指定容器NAME为myjenkins
-d 表示后台运行
-p 8081:8080 表示Docker Host(运行Docker的主机)端口 与Docker容器内运行的端口映射,
8081表示DockerHost的端口,8080即容器内的端口; 外部访问8081即可访问到Docker容器的8080端口
jenkins/jenkins 表示启动的镜像为jenkins/jenkins ,查看本地镜像可以通过docker images查看
说明:
1.容器内的端口外部无法直接访问,因为要配置Docker Host与容器的端口映射,映射可以配置多个;
由于后面需要部署项目,提前把项目的端口号-p 8085:8085配置好,不配置的也可以,后面去修端口映射文件即可。
2.其实我们也可以省略第二步pull操作,直接启动一个容器,Docker会先去本地images中查看是否有这个镜像,如果没有的话会去DockerHub仓库去下载。
登陆Jenkins的初始化操作
1. 访问jenkins界面,例如我虚拟机IP是192.168.199.188 ,输入192.168.199.188:8081,回车显示以下界面
进入安装Jenkins的容器内
docker exec -it autotest-jenkins bash
// 进入指定容器,autotest-jenkins表示我们启动容器时给容器指定的名称
cat /var/jenkins_home/secrets/initialAdminPassword //查看密码,复制密码粘贴到文本框内
2. 安装插件,这里就安装jenkins使用的自动化相关的一些插件
jenkins下载的插件:
Ant in workspace
Gitlab API Plugin
Gitlab hook Plugin
gitLab Authentication Plugin
Role-based Authorization Strategy
3. 自动安装中,需要稍等片刻,安装完成点击继续
4. 创建管理员用户,也可以直接使用admin账户继续
5. 实例配置 直接保存完成
6. 开始使用Jenkins
7. 进入Jenkins主页
全局工具配置(配置环境)
点击系统管理–全局工具配置
1. 配置JDK: 取消自动安装(一般容器内都安装好了JDK环境), 进入docker容器,使用echo $JAVA_HOME 获取jdk安装路径,将路径复制到JAVA_HOME文本框
2. 配置Maven: 指定name,自动安装,点击Save即可
安装Maven插件
点击系统管理–插件管理:在可用插件tab下输入maven即可选择安装,可以选择安装完成后是否重启jenkins。注意:这里需要刷新页面才能看到是否安装成功了。
新建任务,完成自动化部署
1. 回到首页,点New 任务,构建一个Maven项目
2. 点击确定,回到首页我们发现多了一个名为AutoTest1的任务(上面的任务是以前的,不用理会)
3. 点击项目名AutoTest1 --> 点击配置
3.1 源码管理(配置git仓库地址,Jenkins会从远程仓库拉取代码)
3.2 构建配置(Jenkin拉取代码后会自动执行打包命令)
3.3 配置shell脚本(Jenkins打包完成后,自动执行shell脚本启动项目,实现自动化部署),最后保存即可