
Jenkins+Svn+Docker+SpringCloud
实现可持续自动化微服务

Jenkins+Svn+Docker+SpringCloud 实现可持续自动化微服务
1
前言
Spring 并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经
得起实际考验的服务框架组合起来,通过 Spring Boot 风格进行再封装屏蔽掉
了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护
的分布式系统开发工具包。
Spring Cloud 一站式解决方案能在从容应对业务发展的同时大大减少开发
成本。同时,随着近几年微服务架构和 Docker 容器概念的火爆,也会让 Spring
Cloud 在未来越来越“云”化的软件开发风格中立有一席之地,,有效推进服务
端软件系统技术水平的进步。
个人认为下面三幅图可以形象的描述 Spring\Spring Boot\Spring Cloud。
Jenkins 是一个开源软件项目,是基于 Java 开发的一种持续集成工具,用
于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成
变成可能。
这是本人初次接触 Spring Cloud 微服务及 Docker 结合的学习点滴,帮助
自己或他人更好地去理解微服务概念及其庞大的组件体系,给予服务开发上的便
利,同时结合 Docker 虚拟化技术进行整合应用的实践过程,以作者初学的角度
去理解Spring Cloud微服务概念、框架搭建的基本知识及 Docker的整合应用。

Jenkins+Svn+Docker+SpringCloud 实现可持续自动化微服务
2
目录
1、快速搭建虚拟机环境 ................................................................................................................. 7
1.1 软件需求 ............................................................................................................................. 7
1.2 准备工作 ............................................................................................................................. 7
1.2.1 安装 virtualBox ........................................................................................................ 7
1.2.2 安装 vagrant ............................................................................................................ 7
1.2.3 下载 box 镜像文件 .................................................................................................. 8
1.2.4 创建虚拟机文件夹 .................................................................................................. 8
1.3 命令详解 ............................................................................................................................. 8
1.4 创建虚拟机 ......................................................................................................................... 9
1.4.1 添加 box 镜像 .......................................................................................................... 9
1.4.2 查看当前 box 列表 .................................................................................................. 9
1.4.3 初始化 box ............................................................................................................... 9
1.4.4 编辑 Vagrantfile ..................................................................................................... 10
1.4.5 启动本地环境 ........................................................................................................ 11
1.5 连接虚拟机 ....................................................................................................................... 12
2、流程设计及规划 ....................................................................................................................... 14
2.1 整体流程图 ....................................................................................................................... 14
2.2 服务器规划 ....................................................................................................................... 14
3、安装 Subversion(192.168.33.25) .............................................................................................. 16
3.1 安装 HTTP 和 SVN 相关软件包 ........................................................................................ 16
3.2 建立版本库目录 ............................................................................................................... 16
3.3 配置 httpd 文件 ................................................................................................................ 16
3.4 创建 SVN 用户 .................................................................................................................. 16
3.5 创建并配置 SVN 库 .......................................................................................................... 17
3.6 启动 httpd 并加入开机启动 ............................................................................................ 17
3.7 通过浏览器尝试登陆 SVN ............................................................................................... 17
4、安装 Docker(192.168.33.21\22\23\24) .................................................................................... 19
4.1 准备工作 ........................................................................................................................... 19
4.2 安装步骤 ........................................................................................................................... 19
4.2.1 卸载旧版本 ............................................................................................................ 19
4.2.2 设置 REPOSITORY .................................................................................................. 19
4.2.3 设置 docker 稳定的源 ........................................................................................... 19
4.2.4 更新 yum 的安装索引 ........................................................................................... 19
4.2.5 安装 docker 版本 ................................................................................................... 19
4.2.6 启动 docker 服务 ................................................................................................... 20
4.3 相关命令 ........................................................................................................................... 20
4.4 Docker 体验 ...................................................................................................................... 20
4.4.1 安装 nginx .............................................................................................................. 21
4.4.2 安装 mysql ............................................................................................................. 22
4.4.3 总结 ........................................................................................................................ 24
5、搭建 docker 私有仓库 .............................................................................................................. 26

Jenkins+Svn+Docker+SpringCloud 实现可持续自动化微服务
3
5.1 服务端操作(192.168.33.24) ............................................................................................. 26
5.1.1 停止并关闭防火墙 ................................................................................................ 26
5.1.2 安装并启动 docker ................................................................................................ 26
5.1.3 拉取本地私有仓库 registry ................................................................................... 26
5.1.4 查看 registry 镜像 ................................................................................................. 26
5.1.5 基于私有仓库镜像运行容器 ................................................................................ 27
5.1.6 查看 docker 进程 ................................................................................................... 27
5.1.7 验证私有仓库 ........................................................................................................ 27
5.1.8 指定私有仓库 URL ................................................................................................ 27
5.1.9 开放管理端口映射 ................................................................................................ 27
5.1.9 重启 docker 服务 ................................................................................................... 28
5.1.10 从 Docker 私有仓库上拉取一个镜像测试......................................................... 28
5.1.11 创建镜像链接为基础镜像打个标签 .................................................................. 28
5.1.12 上传镜像到本地私有仓库 .................................................................................. 28
5.1.13 查看私有仓库镜像 .............................................................................................. 28
5.2 客户端操作 ....................................................................................................................... 29
5.2.1 停止并关闭防火墙 ................................................................................................ 29
5.2.2 安装并启动 docker ................................................................................................ 29
5.2.3 修改 Docker 配置文件 .......................................................................................... 29
5.2.4 重启 docker 服务 ................................................................................................... 29
5.2.5 从私有仓库中拉取 nginx 镜像 ............................................................................. 29
6、搭建 DockerSwarm 模式集群 .................................................................................................. 31
6.1 集群规划 ........................................................................................................................... 31
6.2 所有节点操作 ................................................................................................................... 31
6.2.1 安装 docker 的 CE 版本 ........................................................................................ 31
6.2.2 编辑 hosts 文件 ..................................................................................................... 31
6.3 创建 swarm 模式集群 ...................................................................................................... 31
6.3.1swarm 主节点操作(192.168.33.21) ....................................................................... 31
6.3.2swarm 从节点操作(192.168.33.22) ....................................................................... 32
6.3.3swarm 主节点操作(192.168.33.21) ....................................................................... 32
7、安装 jenkins .............................................................................................................................. 34
7.1 安装 jenkins 服务器(192.168.33.23) ................................................................................ 34
7.1.1 软件需求 ................................................................................................................ 34
7.1.2 下载 Jenkins 的 war 包 .......................................................................................... 34
7.1.3 上传软件 ................................................................................................................ 34
7.1.4 解压软件 ................................................................................................................ 35
7.1.5 添加环境变量 ........................................................................................................ 35
7.2 启动 jenkins ...................................................................................................................... 35
7.3 初始化 jenkins .................................................................................................................. 36
7.4 配置 jenkins 的 Jdk 和 Maven .......................................................................................... 37
7.5 体验 jenkins ...................................................................................................................... 38
7.5.1 构建一个 maven 项目 ........................................................................................... 38
8、搭建 Portainer 可视化界面 ...................................................................................................... 43
8.1 swarm 主节点操作(192.168.33.21) ................................................................................. 43

Jenkins+Svn+Docker+SpringCloud 实现可持续自动化微服务
4
8.1.1 下载 portainer 镜像 .............................................................................................. 43
8.1.2 启动 portainer ....................................................................................................... 43
8.1.3 查看 docker 进程 ................................................................................................... 43
8.2 浏览 portainer 界面 ......................................................................................................... 43
8.2.1 设置密码 ................................................................................................................ 44
8.3Portainer 体验.................................................................................................................... 47
8.3.1 创建 nginx 服务 ..................................................................................................... 47
9、Spring Boot 快速入门 ............................................................................................................... 52
9.1 搭建第一个 Spring Boot 程序 .......................................................................................... 52
9.1.1 创建父项目 ............................................................................................................ 52
9.1.2 创建子项目 ............................................................................................................ 53
9.1.3 编写 pom.xml ........................................................................................................ 55
9.1.4 更新 maven 项目 ................................................................................................... 56
9.1.5 便捷配置 ................................................................................................................ 57
9.1.6 测试 Spring Boot 应用 .......................................................................................... 58
9.2 单元测试 ........................................................................................................................... 59
9.3 优化配置 .......................................................................................................................... 60
9.3.1 定制 Banner ........................................................................................................... 60
9.3.2 关闭 Banner ........................................................................................................... 61
9.3.3 配置文件 ................................................................................................................ 61
9.4 构建可执行 jar 包 ............................................................................................................ 64
9.5 运行................................................................................................................................... 65
10、Spring Cloud 快速入门 ........................................................................................................... 67
10.1 服务的注册与发现(Eureka) ...................................................................................... 67
10.1.1 创建服务注册中心 .............................................................................................. 67
10.1.2 创建服务提供者 .................................................................................................. 70
10.2 配置服务中心(Config) ................................................................................................. 71
10.2.1 创建 SVN 配置文件仓库 ..................................................................................... 71
10.2.2 创建配置服务端 .................................................................................................. 72
10.2.3 创建使用配置服务的客户端 .............................................................................. 73
11、SpringCloud 与 Docker 结合 ................................................................................................... 77
11.1 编辑 POM 文件 .............................................................................................................. 77
11.2 编译\打包\上传.............................................................................................................. 77
12、Jemeter 压力测试 .................................................................................................................. 80
12.1 安装 Jemeter .................................................................................................................. 80
12.2 解压文件 ......................................................................................................................... 80
12.3 启动 jemeter ................................................................................................................... 80
12.4 体验 jemeter ................................................................................................................... 80
12.4.1 准备一个待测试的服务 ...................................................................................... 80
12.4.2 创建 jemeter 压测内容 ....................................................................................... 81
12.4.3 开始运行 .............................................................................................................. 83
12.4.4 测试结果 .............................................................................................................. 83
13、jenkins 自动化构建 ................................................................................................................ 85