参照官网分布式部署指南有相关命令,一个环境一个数据库
以服务器192.168.1.10 192.168.1.11为例,
分别安装docker环境。
一、数据库安装
将数据目录和配置文件映射到本地,新建目录
mkdir -p /data/mysql/{data,conf}
编辑数据库配置,将默认配置文件填入
vi /data/mysql/conf/my.cnf
数据库配置示例
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL
symbolic-links=0
!includedir /etc/mysql/conf.d/
default_authentication_plugin= mysql_native_password
default-time-zone = '+8:00'
sql_mode = 'NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES'
lower_case_table_names = 1
max_connections=1000
max_allowed_packet=1G
以下命令分别在两台服务器都执行,其中数据库密码已设置
docker run \
-p 3306:3306 \
--privileged=true \
-e MYSQL_ROOT_PASSWORD=Apollo_123 \
-v /data/mysql/data:/var/lib/mysql:rw \
-v /data/mysql/conf/my.cnf:/etc/mysql/my.cnf:rw \
-v /etc/localtime:/etc/localtime:ro \
--name mysql \
--restart=always \
-d mysql:5.7.37
数据库安装完毕后,初始化相关数据库,其中apolloconfigdb分别在两台数据库初始,portaldb则在其中一台执行,这里在192.168.1.11执行。
数据库表初始化完毕后,修改Apolloconfigdb中serverconfig表,将eureka.service.url 的value修改对应的IP地址。如http://192.168.1.10:8080/eureka/
二、adminservice和configservice初始化
192.168.1.10 执行
docker run -p 8080:8080 \
-e SPRING_DATASOURCE_URL="jdbc:mysql://192.168.1.10:3306/ApolloConfigDB?characterEncoding=utf8" \
-e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=Apollo_123 \
-d -v /tmp/logs:/opt/logs --name apollo-configservice apolloconfig/apollo-configservice
docker run -p 8090:8090 \
-e SPRING_DATASOURCE_URL="jdbc:mysql://192.168.1.10:3306/ApolloConfigDB?characterEncoding=utf8" \
-e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=Apollo_123 \
-d -v /tmp/logs:/opt/logs --name apollo-adminservice apolloconfig/apollo-adminservice
192.168.1.11 执行
docker run -p 8080:8080 \
-e SPRING_DATASOURCE_URL="jdbc:mysql://192.168.1.11:3306/ApolloConfigDB?characterEncoding=utf8" \
-e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=Apollo_123 \
-d -v /tmp/logs:/opt/logs --name apollo-configservice apolloconfig/apollo-configservice
docker run -p 8090:8090 \
-e SPRING_DATASOURCE_URL="jdbc:mysql://192.168.1.11:3306/ApolloConfigDB?characterEncoding=utf8" \
-e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=Apollo_123 \
-d -v /tmp/logs:/opt/logs --name apollo-adminservice apolloconfig/apollo-adminservice
三、更改配置
这点很重要,因为是docker运行,homePageUrl取的IP是docker的IP。这里要做一下修改,改成主机的IP
以configservice 为例,进入容器内
docker exec -it apollo-configservice /bin/bash
ls一下,进入目录。
cd apollo-configservice/scripts
vi startup.sh 编辑该文件,插入如下内容,然后保存退出。重启docker。图片所示位置
-Deureka.instance.homePageUrl=http://192.168.1.10:8080
adminservice则 插入如下内容
-Deureka.instance.homePageUrl=http://192.168.1.10:8090
这里是以10服务器为例,其中11服务器也如此操作。IP改成11即可。
四、portal端初始化
这里portal端安装在11上,执行如下命令
docker run -p 8070:8070 \
-e SPRING_DATASOURCE_URL="jdbc:mysql://192.168.1.11:3306/ApolloPortalDB?characterEncoding=utf8" \
-e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=Apollo_123 \
-e APOLLO_PORTAL_ENVS=dev,uat \
-e DEV_META=http://192.168.1.11:8080 -e uat_META=http://192.168.1.10:8080 \
-d -v /tmp/logs:/opt/logs --name apollo-portal apolloconfig/apollo-portal
访问
192.168.1.11:8070,默认用户名apollo 密码 admin