一、Docker compose 编排工具
在安装docker的基础上安装compose编排工具
适应curl命令从GitHup的compose仓库拉取docker compose
更改docker compose的可执行文件权限
查看安装的docker compose效果及版本
卸载compose
sudo rm /usr/local/bin/docker-compose
compose file文件的使用说明,分为三步
①、便携Dockerfile文件‘
②、定义yml文件
③、运行服务部署命令
二、微服务与Docker整合
1、添加Dockerfile文件
1.1、针对一个子项目模块编写对应的Dockerfile文件。这里以用户订单管理微服务模块为例,Dockerfile内容如下
1.2、添加docker-maven插件
添加docker-compose.yml配置文件
三、环境搭建
下载jdk,解压至/usr/lib/jvm,如果jvm没有,新建
配置jdk环境变量
使环境变量生效
上传maven安装包 ,解压
配置环境变量
使环境变量生效
镜像准备
由于之前dockerfile-maven的配置,在完成打包后会自动构建镜像并推送到指定仓库,但无论是推送到Docker Hub还是本地私有镜像仓库,必须先登录认证才可以推送。因此需要修改Maven存放jar文件的位置以及配置服务认证信息
修改setting.xml(/opt/apache-maven-3.6.1/conf)
使用mvn install打包(需要较长时间)
使用docker images查看镜像列表中是否生成镜像
进入本地私有仓库配置的挂在目录/mnt/registry/docker/registry/v2/repositories确认是否推送到本地
四、微服务的手动部署
4.1、非集群环境下的服务部署
登陆私有仓库
部署服务(进入到项目docker-compose.yml文件所在目录,执行服务部署指令来部署整个服务)
使用docker ps查看所有服务是否正常运行
结束整个服务
4.2、在集群环境下部署
保证集群中所有节点处于启动状态
4.2.1、集群服务中网卡选择性注册
根基项目需求,创建一个以overlay为驱动的网络进行集群服务管理
在所有注册到eurke注册中心的服务的配置文件application.yml中,添加指定注册到Eurke中心的优选子服务网址信息
修改编排部署文件docker-compose.yml,将所有的启动时的网络设置为前面预先定义的microwave_net网络来进行管理,将修改后的文件重名为docker-compose-swarm.yml
集群服务部署
登陆私有仓库
部署服务
使用docker service ls查看服务列表详情
使用docker stack查看整个微服务项目在集群节点的分配和启动情况
使用docker service提供的服务日志指令来进一步查看某个具体服务从启动到运行的真个日志情况
微服务测试
通过visualizer集群服务可视化工具查看服务启动情况(192.168.85.100:8081)查看界面情况
通过Eureka注册中心查看服务的启动情况(192.168.85.100:8761)访问Eureka服务注册中心的情况
将数据库初始化,本次实验mysql数据库是使用dokcer容器构建的,所以对mysql数据库进行初始化时需要先安装一个mysql客户端
连接刚才启动的mysql数据库服务
测试微服务,分别连接用户管理微服务和订单管理微服务的访问地址进行测试(http://192.168.85.100:8030/swagget-ui.html,http://192.168.85.100:7900/swagget-ui.html)
测试验证API网关服务,
订单微服务接口调用方法:http://192.168.85.100:7900/order/findOrders/1
用户微服务接口调用:http://192.168.85.100:8030/user/findOrders/shitou
网关代理服务:
http://192.168.85.100:8050/order-service/findOrders/1
http://192.168.85.100:8050/user-service/findOrders/shitou
五、使用Jenkins自动部署微服务
1、下载、安装Jenkins
(1)启动Jenkins服务
(2)Jenkins初始化安装(192.168.85.100:49001)
初始化认证密码
初始化插件安装
创建管理员用户
2、Jenkins集成插件配置
(1)安装mave插件
(2)系统全局插件配置
3、服务自动化部署
(1)构建新任务
配置源码仓库地址
构建触发器
服务发布配置
(2)自动化部署服务
错误
1、安装compose出错
2、查看compose版本出错
3、查看集群节点状态出错
解决修改/etc/docker/daemon.json文件
启动docker
打包出错
解决方案
打包报错
提示权限拒绝,并且无法构建镜像,将maven插件版本改为1.4.9,切换到root用户执行