前置知识
后台启动容器:docker-compose up -d查看容器运行情况:docker-compose ps停止容器:docker-compose stop启动容器:docker-compose start停止并删除容器:docker-compose down停止并删除容器并删除volume:docker-compose down --volumes
1、给组件宿主机eth0网卡共新增3个内网IP
参考:https://cloud.tencent.com/document/product/1199/4386610.0.0.1110.0.0.910.0.0.16设置完之后,一定要重启服务器!验证是否设置成功:ping ip1/ip2/ip3 or ip address设置多内网IP的原因:一方面,部署多个apollo-configservice和apollo-adminservice实例时,如果实例的IP相同,则无法重复注册到内置eureka上另一方面,实例注册到内置eureka上时,不能使用docker网卡的分配的IP,因为这会导致内网中其他机器上的应用实例无法访问apollo
2、提前修改好数据库中的配置
先导入apolloportaldb.sql脚本地址:https://github.com/apolloconfig/apollo/tree/1.8.1/scripts/sql/apolloportaldb.sql再导入apolloconfigdb.sqlhttps://github.com/apolloconfig/apollo/tree/1.8.1/scripts/sql/apolloconfigdb.sql#修改注册中心地址(配置项不存在加新增)select * from ApolloConfigDB.ServerConfig;eureka.service.url=http://10.0.0.11:8080/eureka/,http://10.0.0.9:8081/eureka/,http://10.0.0.16:8082/eureka/#修改对应环境的Meta Service地址(配置项不存在就新增)select * from ApolloPortalDB.ServerConfig;apollo.portal.meta.servers={"DEV":"http://10.0.0.11:8080,http://10.0.0.9:8081,http://10.0.0.16:8082"}
3、搭建3个configservice
重要说明:下面使用的镜像是我修改源码后构建的镜像,不能使用官方镜像!修改源码的目的,是为了调整默认的网络策略,使其支持通过启动参数传入实例的注册IP。1、创建docker-compose.ymlversion: "3.4"services:configservice1:image: xlvchao/apollo-configservice:1.8.1container_name: configservice1restart: alwaysenvironment:- SPRING_DATASOURCE_URL=jdbc:mysql://10.0.0.3:3306/ApolloConfigDB?characterEncoding=utf8&useSSL=false- SPRING_DATASOURCE_USERNAME=root- SPRING_DATASOURCE_PASSWORD=Pwd@123- hostname=configservice1- eureka.instance.ip-address=10.0.0.11volumes:- /data/apollo/configservice/1/logs:/opt/logsports:- 8080:8080configservice2:image: xlvchao/apollo-configservice:1.8.1container_name: configservice2restart: alwaysenvironment:- SPRING_DATASOURCE_URL=jdbc:mysql://10.0.0.3:3306/ApolloConfigDB?characterEncoding=utf8&useSSL=false- SPRING_DATASOURCE_USERNAME=root- SPRING_DATASOURCE_PASSWORD=Pwd@123- hostname=configservice2- eureka.instance.ip-address=10.0.0.9volumes:- /data/apollo/configservice/2/logs:/opt/logsports:- 8081:8080configservice3:image: xlvchao/apollo-configservice:1.8.1container_name: configservice3restart: alwaysenvironment:- SPRING_DATASOURCE_URL=jdbc:mysql://10.0.0.3:3306/ApolloConfigDB?characterEncoding=utf8&useSSL=false- SPRING_DATASOURCE_USERNAME=root- SPRING_DATASOURCE_PASSWORD=Pwd@123- hostname=configservice3- eureka.instance.ip-address=10.0.0.16volumes:- /data/apollo/configservice/3/logs:/opt/logsports:- 8082:80802、后台启动docker-compose up -d
4、搭建3个adminservice
1、创建docker-compose.ymlversion: "3.4"services:adminservice1:image: xlvchao/apollo-adminservice:1.8.1container_name: adminservice1restart: alwaysenvironment:- SPRING_DATASOURCE_URL=jdbc:mysql://10.0.0.3:3306/ApolloConfigDB?characterEncoding=utf8&useSSL=false- SPRING_DATASOURCE_USERNAME=root- SPRING_DATASOURCE_PASSWORD=Pwd@123- eureka.instance.ip-address=10.0.0.11volumes:- /data/apollo/adminservice/1/logs:/opt/logsports:- 8090:8090adminservice2:image: xlvchao/apollo-adminservice:1.8.1container_name: adminservice2restart: alwaysenvironment:- SPRING_DATASOURCE_URL=jdbc:mysql://10.0.0.3:3306/ApolloConfigDB?characterEncoding=utf8&useSSL=false- SPRING_DATASOURCE_USERNAME=root- SPRING_DATASOURCE_PASSWORD=Pwd@123- eureka.instance.ip-address=10.0.0.9volumes:- /data/apollo/adminservice/2/logs:/opt/logsports:- 8091:8090adminservice3:image: xlvchao/apollo-adminservice:1.8.1container_name: adminservice3restart: alwaysenvironment:- SPRING_DATASOURCE_URL=jdbc:mysql://10.0.0.3:3306/ApolloConfigDB?characterEncoding=utf8&useSSL=false- SPRING_DATASOURCE_USERNAME=root- SPRING_DATASOURCE_PASSWORD=Pwd@123- eureka.instance.ip-address=10.0.0.16volumes:- /data/apollo/adminservice/3/logs:/opt/logsports:- 8092:80902、后台启动docker-compose up -d
5、搭建1个portal
1、创建docker-compose.ymlversion: "3.4"services:portalservice:image: xlvchao/apollo-portal:1.8.1container_name: portalservicerestart: alwaysenvironment:- SPRING_DATASOURCE_URL=jdbc:mysql://10.0.0.3:3306/ApolloPortalDB?characterEncoding=utf8&useSSL=false- SPRING_DATASOURCE_USERNAME=root- SPRING_DATASOURCE_PASSWORD=Pwd@123volumes:- /data/apollo/portal/logs:/opt/logsports:- 8070:80702、后台启动docker-compose up -d3、记得开放portal所在云主机的端口8070!!
6、云服务器安全组
开放云服务器的8070端口,登陆apollo控制台:
初始账号密码:apollo/admin
如果搞不定,请加群讨论,扫码关注,发送“加群”
">
