前置知识
后台启动容器: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/43866
10.0.0.11
10.0.0.9
10.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.sql
https://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.yml
version: "3.4"
services:
configservice1:
image: xlvchao/apollo-configservice:1.8.1
container_name: configservice1
restart: always
environment:
- 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.11
volumes:
- /data/apollo/configservice/1/logs:/opt/logs
ports:
- 8080:8080
configservice2:
image: xlvchao/apollo-configservice:1.8.1
container_name: configservice2
restart: always
environment:
- 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.9
volumes:
- /data/apollo/configservice/2/logs:/opt/logs
ports:
- 8081:8080
configservice3:
image: xlvchao/apollo-configservice:1.8.1
container_name: configservice3
restart: always
environment:
- 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.16
volumes:
- /data/apollo/configservice/3/logs:/opt/logs
ports:
- 8082:8080
2、后台启动
docker-compose up -d
4、搭建3个adminservice
1、创建docker-compose.yml
version: "3.4"
services:
adminservice1:
image: xlvchao/apollo-adminservice:1.8.1
container_name: adminservice1
restart: always
environment:
- 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.11
volumes:
- /data/apollo/adminservice/1/logs:/opt/logs
ports:
- 8090:8090
adminservice2:
image: xlvchao/apollo-adminservice:1.8.1
container_name: adminservice2
restart: always
environment:
- 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.9
volumes:
- /data/apollo/adminservice/2/logs:/opt/logs
ports:
- 8091:8090
adminservice3:
image: xlvchao/apollo-adminservice:1.8.1
container_name: adminservice3
restart: always
environment:
- 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.16
volumes:
- /data/apollo/adminservice/3/logs:/opt/logs
ports:
- 8092:8090
2、后台启动
docker-compose up -d
5、搭建1个portal
1、创建docker-compose.yml
version: "3.4"
services:
portalservice:
image: xlvchao/apollo-portal:1.8.1
container_name: portalservice
restart: always
environment:
- SPRING_DATASOURCE_URL=jdbc:mysql://10.0.0.3:3306/ApolloPortalDB?characterEncoding=utf8&useSSL=false
- SPRING_DATASOURCE_USERNAME=root
- SPRING_DATASOURCE_PASSWORD=Pwd@123
volumes:
- /data/apollo/portal/logs:/opt/logs
ports:
- 8070:8070
2、后台启动
docker-compose up -d
3、记得开放portal所在云主机的端口8070!!
6、云服务器安全组
开放云服务器的8070端口,登陆apollo控制台:
初始账号密码:apollo/admin
如果搞不定,请加群讨论,扫码关注,发送“加群”