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/

 

posted @ 2025-06-19 16:42  slnngk  阅读(151)  评论(0)    收藏  举报