描述:通过docker在单机器上安装3台nacos做集群,持久化操作使用单机mysql(暂未做主从)
docker安装nacos详细信息可参考官方文档:
https://github.com/nacos-group/nacos-docker/blob/master/example/cluster-embedded.yaml(github)
https://nacos.io/zh-cn/docs/quick-start-docker.html(官网文档)
nacos用mysql做持久化的SQL语句(来自官方):https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql
使用docker安装单机版nacos :
使用docker-compose进行安装,若未安装docker-compose可查考:
Linux系统未安装git,所以所需文件均为个人新建,若有git可以自行在官网拉取
一、新建cluster-hostname.yaml(若拉取官网代码则不需要新建)
个人将该文件放在了根目录
touch cluster-hostname.yaml
以下未官网截图,若已经拉取的官网代码,则可以找到改文件
二、新建custom.properties(若拉取官网代码则不需要新建)
个人将该文件放在了根目录
touch custom.properties
在该文件输入 management.endpoints.web.exposure.include=* ,或者将官网的全部复制进去
以下为官网代码:
三、编辑yaml文件
若使用官网下载的代码则需要将cluster-hostname.yaml下的部分内容对照修改,不要将下方yaml直接全盘复制
参数说明(可查看官网文档:地址文章开头有标注):
注意事项:
1、image镜像按照个人实际配置
2、hostname和NACOS_SERVERS中保持一致
3、容器name区分开
4、持久化的数据库根据个人实际配置(持久化目前支持mysql,对应的SQL文档上面有官方地址,直接执行就好了)
5、/custom.properties,这个文件放在了根目录。这个地址按照个人实际填写。若使用官方代码则无需操作
version: "3"
services:
nacos1:
hostname: nacos1
container_name: nacos1 # 容器名
image: nacos/nacos-server:latest #镜像
environment:
- MODE=cluster # 集群模式
- NACOS_SERVERS=nacos1:8848 nacos2:8849 nacos3:8850
- PREFER_HOST_MODE=hostname
- SPRING_DATASOURCE_PLATFORM=mysql
- MYSQL_MASTER_SERVICE_HOST=192.168.0.130 # mysql数据库对应的ip
- MYSQL_MASTER_SERVICE_PORT=3306 # mysql数据库对应的端口
- MYSQL_MASTER_SERVICE_DB_NAME=nacos_config
- MYSQL_MASTER_SERVICE_USER=root
- MYSQL_MASTER_SERVICE_PASSWORD=123456
- MYSQL_DATABASE_NUM=1 # 数据源为1个
- JVM_XMS=128m
- JVM_XMX=128m
- JVM_XMN=128m
volumes:
- ./cluster-logs/nacos1:/home/nacos/logs
- /custom.properties:/home/nacos/init.d/custom.properties # 注custom.properties放在了根目录,所以为/custom.properties,此处地址需要自行配置
ports:
- "8848:8848"
- "9555:9555"
restart: on-failure
nacos2:
hostname: nacos2
image: nacos/nacos-server:latest #镜像
container_name: nacos2 #容器名
environment:
- MODE=cluster # 集群模式
- NACOS_SERVERS=nacos1:8848 nacos2:8849 nacos3:8850
- PREFER_HOST_MODE=hostname
- SPRING_DATASOURCE_PLATFORM=mysql
- MYSQL_MASTER_SERVICE_HOST=192.168.0.130 # mysql数据库对应的ip
- MYSQL_MASTER_SERVICE_PORT=3306 # mysql数据库对应的端口
- MYSQL_MASTER_SERVICE_DB_NAME=nacos_config
- MYSQL_MASTER_SERVICE_USER=root
- MYSQL_MASTER_SERVICE_PASSWORD=123456
- MYSQL_DATABASE_NUM=1 # 数据源为1个
- JVM_XMS=128m
- JVM_XMX=128m
- JVM_XMN=128m
volumes:
- ./cluster-logs/nacos2:/home/nacos/logs
- /custom.properties:/home/nacos/init.d/custom.properties
ports:
- "8849:8848"
restart: on-failure
nacos3:
hostname: nacos3
image: nacos/nacos-server:latest #镜像
container_name: nacos3
environment:
- MODE=cluster # 集群模式
- NACOS_SERVERS=nacos1:8848 nacos2:8849 nacos3:8850
- PREFER_HOST_MODE=hostname
- SPRING_DATASOURCE_PLATFORM=mysql
- MYSQL_MASTER_SERVICE_HOST=192.168.0.130 # mysql数据库对应的ip
- MYSQL_MASTER_SERVICE_PORT=3306 # mysql数据库对应的端口
- MYSQL_MASTER_SERVICE_DB_NAME=nacos_config
- MYSQL_MASTER_SERVICE_USER=root
- MYSQL_MASTER_SERVICE_PASSWORD=123456
- MYSQL_DATABASE_NUM=1 # 数据源为1个
- JVM_XMS=128m
- JVM_XMX=128m
- JVM_XMN=128m
volumes:
- ./cluster-logs/nacos3:/home/nacos/logs
- /custom.properties:/home/nacos/init.d/custom.properties
ports:
- "8850:8848"
restart: on-failure
四、启动
使用以下命令尝试启动,窗口关闭启动的镜像则会关闭,但是可以看到启动日志
docker-compose -f cluster-hostname.yaml up
若测试正常则可以进行后台启动
docker-compose -f cluster-hostname.yaml up -d
执行docker-compose -f cluster-hostname.yaml up,正常启动的日志:
六、查看容器是否启动
docker ps