描述:通过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

以下未官网截图,若已经拉取的官网代码,则可以找到改文件 

zabbix docker 单机部署 docker单机集群_docker

二、新建custom.properties(若拉取官网代码则不需要新建)

个人将该文件放在了根目录

touch custom.properties

在该文件输入 management.endpoints.web.exposure.include=* ,或者将官网的全部复制进去

zabbix docker 单机部署 docker单机集群_JVM_02

以下为官网代码:

zabbix docker 单机部署 docker单机集群_官网_03

三、编辑yaml文件

若使用官网下载的代码则需要将cluster-hostname.yaml下的部分内容对照修改,不要将下方yaml直接全盘复制

参数说明(可查看官网文档:地址文章开头有标注):

zabbix docker 单机部署 docker单机集群_JVM_04

注意事项:

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,正常启动的日志:

zabbix docker 单机部署 docker单机集群_zabbix docker 单机部署_05

六、查看容器是否启动

docker ps

zabbix docker 单机部署 docker单机集群_官网_06