Apollo-mysql-docker部署
Posted why768
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apollo-mysql-docker部署相关的知识,希望对你有一定的参考价值。
1、前置准备工作
部署Apollo的目标服务器要求:
(1)Linux 发行版本建议CentOS7 (由于Apollo服务内置3个JVM进程 所有系统可用内存建议不低于2G)
(2)安装mysql 版本5.6.5+(为Apollo部署MySQL服务,也可以借用已经部署好的MySQL服务)
(3)安装JDK 版本1.8+
(4)安装Docker 版本1.13+
(5)安装docker-compose
yum -y install epel-release
yum -y install python-pip
pip install docker-compose
(6)安装unzip解压工具 yum install zip unzip
(7)服务器IP情况假设如下:
MySQL部署所在服务器IP为 MySQL_IP(下文均通过这个来指代) 假设MySQL登录用户名密码为root/123456
Apollo部署所在服务器IP为 Apollo_IP(下文均通过这个来指代)
特别注意:由于业务系统需要访问Apollo获取配置,如果Apollo_IP和业务系统不再一个局域网,那么Apollo_IP必须是外网IP,同理,由于Apollo需要访问MySQL,如果MySQL_IP和Apollo_IP不属于同一个局域网,MySQL_IP也必须是外网IP
2、下载Apollo初始安装文件apollo-mysql-docker.zip
3、本地解压初始安装文件,修改Apollo相关连接配置信息
解压后得到的文件目录为:
apollo-config
apollo-admin
apollo-portal
sql
docker-compose.yml
(1)修改docker-compose.yml
替换其中的MySQL_IP和Apollo_IP、设置spring_datasource_username和spring_datasource_password(即对应的MySQL登录用户名和密码)
version: "3"
services:
apollo-config: ##容器服务名
container_name: apollo-config ##容器名
build: apollo-config/ ##Dockerfile路径
image: apollo-config ##镜像名
ports:
- "8847:8847"
volumes:
- "/opt/logs/100003171:/opt/logs/100003171" ##将容器中应用日志挂载到宿主机的/opt/logs/100003171方便在宿主机上查看日志
environment:
- spring_datasource_url=jdbc:mysql://MySQL_IP:3306/ApolloConfigDB?characterEncoding=utf8
- spring_datasource_username=root
- spring_datasource_password=123456
- JAVA_OPTS=-Deureka.instance.ip-address=Apollo_IP
apollo-admin:
container_name: apollo-admin
build: apollo-admin/
image: apollo-admin
ports:
- "8090:8090"
depends_on:
- apollo-config
volumes:
- "/opt/logs/100003172:/opt/logs/100003172"
environment:
- spring_datasource_url=jdbc:mysql://MySQL_IP:3306/ApolloConfigDB?characterEncoding=utf8
- spring_datasource_username=root
- spring_datasource_password=123456
apollo-portal:
container_name: apollo-portal
build: apollo-portal/
image: apollo-portal
ports:
- "8070:8070"
depends_on:
- apollo-admin
volumes:
- "/opt/logs/100003173:/opt/logs/100003173"
environment:
- spring_datasource_url=jdbc:mysql://MySQL_IP:3306/ApolloPortalDB?characterEncoding=utf8
- spring_datasource_username=root
- spring_datasource_password=123456
- JAVA_OPTS=-Dpro_meta=http://Apollo_IP:8847
(2)导入sql数据库脚本 — 参见《Apollo-mysql-普通部署实施》中的第4点
相比Apollo的普通部署不同,docker部署这里导入SQL后需要到ApolloConfigDB找到ServerConfig表将eureka.service.url的值修改为http://Apollo_IP:8847/eureka/
4、使用SFTP工具将修改并重新压缩后的apollo-mysql-docker.zip上传到目标Linux服务器指定目录如/home/apollo下,然后在该目录下依次运行如下命令:
(1)unzip apollo-mysql-docker.zip
(2)docker-compose up -d
等待并观察日志输出(大概5分钟),若为如下则启动成功:
特别说明:看到上述日志输出说明启动命令执行成功,但是Apollo服务访问还需要等待一段时间(再耐心等待几分钟)
5、启动成功浏览器中http://Apollo_IP:8070访问Apollo配置中心 默认dongzs/dongzs登录(该账户下已经包含所有项目运行需要的相关配置 登录后进行相应的配置修改即可满足项目运行需要)
6、执行 docker-compose down 可以关闭Apollo服务
=================================================================
7、基于Docker镜像的部署安装:
(1)apolloconfig的启动
docker run -d
-e spring_datasource_url=jdbc:mysql://MySQL_IP:3306/ApolloConfigDB?characterEncoding=utf8
-e spring_datasource_username=root
-e spring_datasource_password=123456
-e JAVA_OPTS=-Deureka.instance.ip-address=Apollo_IP
-p 8847:8847
-v /opt/logs/100003171:/opt/logs/100003171
-it registry.cn-hangzhou.aliyuncs.com/sw/apolloconfig:1.5.0
(2)apolloadmin的启动
docker run -d
-e spring_datasource_url=jdbc:mysql://MySQL_IP:3306/ApolloConfigDB?characterEncoding=utf8
-e spring_datasource_username=root
-e spring_datasource_password=123456
-p 8090:8090
-v /opt/logs/100003172:/opt/logs/100003172
-it registry.cn-hangzhou.aliyuncs.com/sw/apolloadmin:1.5.0
(3)apolloportal的启动
docker run -d
-e spring_datasource_url=jdbc:mysql://MySQL_IP:3306/ApolloPortalDB?characterEncoding=utf8
-e spring_datasource_username=root
-e spring_datasource_password=123456
-e JAVA_OPTS=-Dpro_meta=http://Apollo_IP:8847
-p 8070:8070
-v /opt/logs/100003173:/opt/logs/100003173
-it registry.cn-hangzhou.aliyuncs.com/sw/apolloportal:1.5.0
说明1:上面(1)(3)中JAVA_OPTS后面指定的Apollo_IP必须为前面(1)apolloconfig对应的服务地址(对应宿主机的服务地址)
说明2:Apollo内置的Eureka注册中心也可以替换为外部统一的注册中心(便于将Apollo的纳入统一的服务监控),只需去apolloconfig对应的数据库表ServerConfig中修改eureka.service.url的地址为对应的地址就好,一般实际部署我们建议做这个替换
以上是关于Apollo-mysql-docker部署的主要内容,如果未能解决你的问题,请参考以下文章