一、前置准备工做html
部署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-composepython
yum -y install epel-release
yum -y install python-pip
pip install docker-compose
(6)安装unzip解压工具 yum install zip unzip
(7)服务器IP状况假设以下:mysql
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
二、下载Apollo初始安装文件apollo-mysql-docker.zipspring
三、本地解压初始安装文件,修改Apollo相关链接配置信息sql
解压后获得的文件目录为:
apollo-config\
apollo-admin\
apollo-portal\
sql\
docker-compose.ymldocker
(1)修改docker-compose.ymlshell
替换其中的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/
四、使用SFTP工具将修改并从新压缩后的apollo-mysql-docker.zip上传到目标Linux服务器指定目录如/home/apollo下,而后在该目录下依次运行以下命令:服务器
(1)unzip apollo-mysql-docker.zip
(2)docker-compose up -d
等待并观察日志输出(大概5分钟),若为以下则启动成功:
特别说明:看到上述日志输出说明启动命令执行成功,可是Apollo服务访问还须要等待一段时间(再耐心等待几分钟)
五、启动成功浏览器中http://Apollo_IP:8070访问Apollo配置中心 默认dongzs/dongzs登陆(该帐户下已经包含全部项目运行须要的相关配置 登陆后进行相应的配置修改便可知足项目运行须要)
六、执行 docker-compose down 能够关闭Apollo服务
=================================================================
七、基于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的地址为对应的地址就好,通常实际部署咱们建议作这个替换