docker部署阿波罗(apollo)
环境
Os:Centos 7
apollo:2.4.0
1.部署mysql数据库并初始化数据库
在数据量服务器(192.168.1.100)上操作
下载阿波罗安装包,安装包里包含有相应的sql文件
cd /soft/
wget https://github.com/apolloconfig/apollo/archive/refs/tags/v2.4.0.tar.gz
tar -xvf apollo-2.4.0.tar.gz
sql脚本路径如下:
/soft/apollo-2.4.0/scripts/sql/src/apolloconfigdb.sql
/soft/apollo-2.4.0/scripts/sql/src/apolloportaldb.sql
创建数据库
/opt/mysql57/bin/mysql -h localhost -uroot -pmysql -S /opt/mysql57/data/mysql.sock
create database apolloconfigdb;
create database apolloportaldb;
导入数据
/opt/mysql57/bin/mysql -h localhost -uroot -pmysql -S /opt/mysql57/data/mysql.sock --default-character-set=utf8 -D apolloconfigdb</soft/apollo-2.4.0/scripts/sql/src/apolloconfigdb.sql
/opt/mysql57/bin/mysql -h localhost -uroot -pmysql -S /opt/mysql57/data/mysql.sock --default-character-set=utf8 -D apolloportaldb</soft/apollo-2.4.0/scripts/sql/src/apolloportaldb.sql
2.拉取镜像
[root@localhost ~]# docker pull registry.cn-shenzhen.aliyuncs.com/hxlk8s/apollo-portal:2.4.0
[root@localhost ~]# docker pull registry.cn-shenzhen.aliyuncs.com/hxlk8s/apollo-adminservice:2.4.0
[root@localhost ~]# docker pull registry.cn-shenzhen.aliyuncs.com/hxlk8s/apollo-configservice:2.4.0
3.启动各组件
Apollo Config Service
docker run -d -p 8080:8080 \
-e SPRING_DATASOURCE_URL="jdbc:mysql://192.168.1.100:3306/ApolloConfigDB?characterEncoding=utf8" \
-e SPRING_DATASOURCE_USERNAME=root \
-e SPRING_DATASOURCE_PASSWORD=mysql \
-v /tmp/logs:/opt/logs \
--name apollo-configservice registry.cn-shenzhen.aliyuncs.com/hxlk8s/apollo-configservice:2.4.0
Apollo Admin Service
docker run -d -p 8090:8090 \
-e SPRING_DATASOURCE_URL="jdbc:mysql://192.168.1.100:3306/ApolloConfigDB?characterEncoding=utf8" \
-e SPRING_DATASOURCE_USERNAME=root \
-e SPRING_DATASOURCE_PASSWORD=mysql \
-v /tmp/logs:/opt/logs \
--name apollo-adminservice registry.cn-shenzhen.aliyuncs.com/hxlk8s/apollo-adminservice:2.4.0
Apollo Portal
docker run -d -p 8070:8070 \
-e SPRING_DATASOURCE_URL="jdbc:mysql://192.168.1.100:3306/ApolloPortalDB?characterEncoding=utf8" \
-e SPRING_DATASOURCE_USERNAME=root \
-e SPRING_DATASOURCE_PASSWORD=mysql \
-e APOLLO_PORTAL_ENVS=dev \
-e DEV_META=http://192.168.1.135:8080 \
-v /tmp/logs:/opt/logs \
--name apollo-portal registry.cn-shenzhen.aliyuncs.com/hxlk8s/apollo-portal:2.4.0
说明:
APOLLO_PORTAL_ENVS(可选): 对应ApolloPortalDB中的apollo.portal.envs配置项,如果没有在数据库中配置的话,可以通过此环境参数配置
DEV_META/PRO_META(可选): 配置对应环境的Meta Service地址,以${ENV}_META命名,需要注意的是如果配置了ApolloPortalDB中的apollo.portal.meta.servers配置,则以apollo.portal.meta.servers中的配置为准
默认是:DEV
4.查看进程
[root@host135 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
608f399041f2 registry.cn-shenzhen.aliyuncs.com/hxlk8s/apollo-portal:2.4.0 "/apollo-portal/scri…" 3 minutes ago Up 3 minutes 0.0.0.0:8070->8070/tcp, :::8070->8070/tcp apollo-portal
d429cfdebcb1 registry.cn-shenzhen.aliyuncs.com/hxlk8s/apollo-adminservice:2.4.0 "/apollo-adminservic…" 4 minutes ago Up 4 minutes 0.0.0.0:8090->8090/tcp, :::8090->8090/tcp apollo-adminservice
9b51d9262173 registry.cn-shenzhen.aliyuncs.com/hxlk8s/apollo-configservice:2.4.0 "/apollo-configservi…" 5 minutes ago Up 5 minutes 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp apollo-configservice
查看日志
docker logs --tail 200 608f399041f2 ##portal服务
docker logs --tail 200 d429cfdebcb1 ##管理服务
docker logs --tail 200 9b51d9262173 ##配置服务
4.需要手动修改eureka配置,否则admin service的日志将会出现注册错误
/opt/mysql57/bin/mysql -h localhost -uroot -pmysql -S /opt/mysql57/data/mysql.sock
mysql> use apolloconfigdb;
mysql> select id,`key`,value,comment from serverconfig where `key`='eureka.service.url';
+----+--------------------+-------------------------------+------------------------------------------------------+
| id | key | value | comment |
+----+--------------------+-------------------------------+------------------------------------------------------+
| 1 | eureka.service.url | http://localhost:8080/eureka/ | Eureka服务Url,多个service以英文逗号分隔 |
+----+--------------------+-------------------------------+------------------------------------------------------+
1 row in set (0.00 sec)
update serverconfig
set value = 'http://192.168.1.135:8080/eureka/'
where id=1;
重启容器
docker restart 9b51d9262173 ##配置服务
docker restart d429cfdebcb1 ##管理服务
docker restart 608f399041f2 ##portal服务
5.登录portal
http://192.168.1.135:8070/
用户名/密码:apollo/admin

6.登录eureka
http://192.168.1.135:8080/

浙公网安备 33010602011771号