背景
前几篇文章中,我们完整地将Dubbo2.7整合spring boot中,并成功运行,我们也初步了解了docker的一些最基本使用,在以后的犀利课程中,我们也会做简单的docker总结,今天我们看在dubbo重新维护以来,在服务治理的管理控制台UI也做了新一轮的优化,使用前后端分离,今天我们就使用docker来部署dubbo新的服务治理管理UI
附上我们最后部署的效果图
![9951b5e3ad009913636d89763440d3aa.png](https://i-blog.csdnimg.cn/blog_migrate/1df9ea455367a811e8bea3747d8a3d80.jpeg)
一.下载dubbo-admin源代码
源代码地址:
https://github.com/apache/dubbo-admin
![e3e1aa01440a9d372ba0389e8efb2805.png](https://i-blog.csdnimg.cn/blog_migrate/f868c3f513c346e741fea04411f9ade8.jpeg)
点击“Clone or download” 如下图所示
![dc14b91b5e9c73f91beba6559212754a.png](https://i-blog.csdnimg.cn/blog_migrate/809f2978f42d1e6cbe30d87bfb1ccaff.jpeg)
1.2 打开IDEA,点击File->New->Project from Version Controller -> Git
![65445fca7c274f3cd334c5e6ef5ed11b.png](https://i-blog.csdnimg.cn/blog_migrate/d9b140917ea99c14a0d9fcea40c97c27.jpeg)
在URL中输入我们刚刚复制的dubbo-admin的地址,成功克隆之后,完整的项目结构如下
![eb5427917124e3354b8f5846cbe05aef.png](https://i-blog.csdnimg.cn/blog_migrate/ca1b0c5655b8d4af70eaa0753bf41add.jpeg)
二.自主构建镜像,使用最基本的Docker命令来运行Dubbo Admin UI
2.1 首先,我们先用docker来启动一个zookeeper的容器实例,并设置服务端口2181到宿主机的2181端口,这样宿主机的普通spring boot服务能够访问使用zookeeper的docker容器,
--name的原因,是因为docker的其他容器需要访问zookeeper 容器实例的时候,需要使用link的方式,所以需要设置容器名称,dubbo-admin UI的后台也是读取zookeeper上的数据来做服务治理的,(dubbo2.7之后,把服务的一些元信息也可以放在redis实例中,不过我们依旧可以把所有的数据放在zookeeper中,简单一点),因为我们dubbo-admin UI也是容器部署,所以需要设置zookeeper 容器实例的名字
docker run --name zookeeper -p 2181:2181 zookeeper:latest
2.2 使用maven进行dubbo admin ui的源代码打包
修改一下dubbo-admin-server中application.properties中的配置文件,修改一下zookeeper的地址,我们后面会用docker --link的方式来连接到zookeeper
admin.registry.address=zookeeper://zookeeper:2181admin.config-center=zookeeper://zookeeper:2181admin.metadata-report.address=zookeeper://zookeeper:2181
最后使用maven进行编译打包
mvn clean package
![41fbc14c504057522d4780fe2471c1cc.png](https://i-blog.csdnimg.cn/blog_migrate/c159ac44cbe858c605b1506943b01524.jpeg)
(注意,这边dubbo在根pom.xml中使用了一些前端构建插件,【frontend-maven-plugin】它可以把前端项目整体打包,避免需要构建多个镜像,统一打包)
![1ad21a3deeb8ecf7a758044c41a14d6c.png](https://i-blog.csdnimg.cn/blog_migrate/3c4b6582fe7052c62c932c2455e9a655.jpeg)
编译打包成功之后,会在dubbo-admin-distribution下多一个target文件夹
![2a61fa3b54ed22456cadd11ebf1d152f.png](https://i-blog.csdnimg.cn/blog_migrate/266ca793a0ea6ccf6357ca6c75f9201d.jpeg)
2.3 编写Dockerfile,构建镜像,在dubbo-admin跟项目下,新建Dockerfile文件
![edafaf3c663160e53ccfb9f0a74e32f3.png](https://i-blog.csdnimg.cn/blog_migrate/1ea718c9fd3cf7b2be7abc868ccc4103.jpeg)
Dockerfile内容如下,其实还是比较简单的,基于jdk1.8构建,然后将本地的dubbo-admin-distributition项目下的maven编译打包的dubbo-admin-0.1.jar 复制到基础镜像的跟目录下,成为一个基础镜像层,重命名为dubbo-admin.jar,最后使用我们最常用的【java -jar /dubbo-admin.jar】,还是非常好理解的
FROM openjdk:8-jdk-alpineADD dubbo-admin-distribution/target/dubbo-admin-0.1.jar dubbo-admin.jarENTRYPOINT ["java