Docker 安装 Nacos 单机和集群

前言

本文主要介绍如何使用 Docker 安装并管理 Nacos 的镜像和容器,涉及到 Nacos 单机版与集群版的安装,并连接上 MySQL 数据库,同时还会介绍 Prometheus 与 Grafana 监控系统的使用。

1.0、版本说明

软件版本
CentOS7.9
Docker20.10.1
Docker-Compose1.24.0-rc1
Nacos1.4.0

1.1、快速启动

单机模式快速启动 Nacos,使用嵌入式数据库

1
# docker run --name nacos-standalone-embedded -e MODE=standalone -p 8848:8848 -d nacos/nacos-server:latest

单机模式快速启动 Nacos,使用 MySQL 数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# docker run -d \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=ip \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=nacos \
-e MYSQL_SERVICE_PASSWORD=nacos \
-e MYSQL_SERVICE_DB_NAME=nacos_devtest \
-p 8848:8848 \
--restart=always \
--name nacos-standalone-mysql \
nacos/nacos-server:latest

## 特别注意:
## 1) MySQL 数据库必须是已经初始化过的,即已经创建好 Nacos 运行所需的数据库表
## 2) MySQL 的 IP 必须是在 Nacos 容器内部可以直接访问到的 IP,一般情况下不能直接使用 `127.0.0.1`
## 3) 若 MySQL 不是运行在 Docker 容器内,而是直接安装在外网或者宿主机内,可以指定 `--net=host` 参数让 Nacos 容器共享宿主机的网络

1.2、Clone Nacos 项目

1
2
3
4
5
6
7
8
9
10
11
# 拉取Nacos项目的源码
$ git clone git clone https://github.com/alibaba/nacos.git

# 后面会使用 nacos-mysql.sql 来初始化MySQL数据库
$ tree nacos/distribution/conf
├── application.properties
├── application.properties.example
├── cluster.conf.example
├── nacos-mysql.sql
├── nacos-logback.xml
└── schema.sql

1.3、Clone Nacos Docker 项目

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 拉取Nacos Docker项目的源码
$ git clone https://github.com/nacos-group/nacos-docker.git

# 进入项目目录
$ cd nacos-docker

# 目录结构
$ tree
├── build
│   ├── bin
│   │   └── docker-startup.sh
│   ├── conf
│   │   └── application.properties
│   ├── Dockerfile
│   └── init.d
│   └── custom.properties
├── changlog
├── env
│   ├── mysql.env
│   ├── nacos-embedded.env
│   ├── nacos-hostname.env
│   ├── nacos-ip.env
│   └── nacos-standlone-mysql.env
├── example
│   ├── cluster-embedded.yaml
│   ├── cluster-hostname.yaml
│   ├── cluster-ip.yaml
│   ├── init.d
│   │   └── custom.properties
│   ├── prometheus
│   │   ├── prometheus-cluster.yaml
│   │   └── prometheus-standalone.yaml
│   ├── standalone-derby.yaml
│   ├── standalone-mysql-5.7.yaml
│   └── standalone-mysql-8.yaml
├── README.md
└── README_ZH.md

目录结构说明:

  • example:Docker-Compose 编排示例
  • example/init.d:启动 Nacos 容器时的自定义配置(应用级别),例如 Metrics 监控相关的内容
  • build:用于构建 Nacos 镜像的源码,包括配置文件、Shell 脚本与 Dockerfile
  • env:Docker-Compose 的环境变量文件,例如定义 MySQL 数据库的用户名、密码和端口号、Nacos 集群各节点的 IP

Nacos 单机模式启动

2.0、Nacos 监控关闭

在 Nacos 官方的 Docker 项目里,Nacos 单机版(Derby、MySQL 5.7)默认集成了 Prometheus 与 Grafana 监控。即在 example/standalone-xxx.yaml 配置文件里,除了已经配置了 Nacos 的镜像,还配置了 Prometheus、Grafana 作为监控系统。如果不需要监控 Nacos,可以删除对应的配置内容,具体操作如下:

  • 1)配置 Nacos 不暴露 Metrics 数据
1
2
3
# 编辑Properties配置文件
$ vim example/init.d/custom.properties
management.endpoints.web.exposure.include=* #注释掉这行内容,注释后访问"http://{ip}:8848/nacos/actuator/prometheus" 不会再看到Metrics数据
  • 2)删除 Prometheus、Grafana 的 Docker-Compose 配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 编辑YAML配置文件,删除以下内容
$ vim example standalone-derby.yaml

prometheus:
container_name: prometheus
image: prom/prometheus:latest
volumes:
- ./prometheus/prometheus-standalone.yaml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090"
depends_on:
- nacos
restart: on-failure
grafana:
container_name: grafana
image: grafana/grafana:latest
ports:
- 3000:3000
restart: on-failure

2.1、Nacos + Derby

单机模式启动 Nacos 容器,默认使用的是嵌入式数据库 Derby

1
2
3
4
5
# 创建并前台启动容器
# docker-compose -f example/standalone-derby.yaml up

# 或者创建并后台启动容器
# docker-compose -f example/standalone-derby.yaml up -d

Docker-Compose 常用的容器管理命令,后面创建的所有容器都可以这样管理,不再累述。

1
2
3
4
5
6
7
8
9
10
11
# 查看容器的运行状态
# docker-compose -f example/standalone-derby.yaml ps

# 启动容器
# docker-compose -f example/standalone-derby.yaml start

# 停止容器
# docker-compose -f example/standalone-derby.yaml stop

# 停止并删除容器,包括网络、数据卷(特别注意,此操作会删除所有容器的数据,且不可恢复)
# docker-compose -f example/standalone-derby.yaml down

2.2、Nacos + MySQL 5.7

单机模式启动 Nacos 容器,数据库使用的是 MySQL 5.7,这里需要手动执行 MySQL 数据库初始化操作,否则 Nacos 启动时会抛出 No DataSource set 异常,导致无法连接上 MySQL 数据库

1
2
3
4
5
# 创建并前台启动容器
# docker-compose -f example/standalone-mysql-5.7.yaml up

# 或者创建并后台启动容器
# docker-compose -f example/standalone-mysql-5.7.yaml up -d

2.3、Nacos + MySQL 8

单机模式启动 Nacos 容器,数据库使用的是 MySQL 8,这里需要手动执行 MySQL 数据库初始化操作,否则 Nacos 启动时会抛出 No DataSource set 异常,导致无法连接上 MySQL 数据库

1
2
3
4
5
# 创建并前台启动容器
# docker-compose -f example/standalone-mysql-8.yaml up

# 或者创建并后台启动容器
# docker-compose -f example/standalone-mysql-8.yaml up -d

2.4、Nacos 单机模式测试

2.4.1、调用 OPEN API

1
2
3
4
5
6
7
8
9
10
11
# 发布配置
$ curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=helloWorld"

# 获取配置
$ curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"

# 服务注册
$ curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'

# 服务发现
$ curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName'

2.4.2、访问 Nacos 的控制台

浏览器访问 http://127.0.0.1:8848/nacos,打开 Nacos 的控制台

docker-nacos-single

Nacos 集群模式启动

Nacos 的集群模式需要依赖 MySQL 数据库(集中式存储),因此在集群模式下不能再使用 Nacos 自带的嵌入式数据库 Derby。在 Nacos 官方的 Docker 项目中,以集群模式启动 Nacos,默认使用的是单个 MySQL 数据库。值得一提的是,从 Nacos 1.1.4 镜像开始,后续所有镜像都已经移除了主从镜像相关属性的配置。由于在 Nacos 的生产环境中,MySQL 至少需要主备模式,或者采用高可用数据库;因此如果需要配置 MySQL 主从库,需要自行实现(如搭建 DB-Proxy)。

3.0、Nacos + MySQL 5.7

基于 HostName,集群模式启动 Nacos 容器,数据库使用的是 MySQL 5.7(单机),这里需要手动执行 MySQL 数据库初始化操作,否则 Nacos 启动时会抛出 No DataSource set 异常,导致无法连接上 MySQL 数据库

1
2
3
4
5
# 创建并前台启动容器
# docker-compose -f example/cluster-hostname.yaml up

# 或者创建并后台启动容器
# docker-compose -f example/cluster-hostname.yaml up -d

基于 IP,集群模式启动 Nacos 容器,数据库使用的是 MySQL 5.7(单机),这里需要手动执行 MySQL 数据库初始化操作,否则 Nacos 启动时会抛出 No DataSource set 异常,导致无法连接上 MySQL 数据库

1
2
3
4
5
# 创建并前台启动容器
# docker-compose -f example/cluster-ip.yaml up

# 或者创建并后台启动容器
# docker-compose -f example/cluster-ip.yaml up -d

查看 Nacos 的日志文件,若日志信息如下显示,则说明 Nacos 是以集群模式启动的

1
2
3
4
5
6
7
8
# tail -n 20 example/cluster-logs/nacos1/nacos.log
# tail -n 20 example/cluster-logs/nacos2/nacos.log
# tail -n 20 example/cluster-logs/nacos3/nacos.log

2020-03-12 21:20:17,866 INFO Nacos started successfully in cluster mode. use external storage
2020-03-12 21:20:18,117 INFO Initializing Spring DispatcherServlet 'dispatcherServlet'
2020-03-12 21:20:18,117 INFO Initializing Servlet 'dispatcherServlet'
2020-03-12 21:20:18,141 INFO Completed initialization in 23 ms

3.1、Nacos 集群模式测试

3.1.1、调用 OPEN API

1
2
3
4
5
6
7
8
9
10
11
# 发布配置
$ curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=helloWorld"

# 获取配置
$ curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"

# 服务注册
$ curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'

# 服务发现
$ curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName'

3.1.2、访问 Nacos 的控制台

浏览器访问 http://127.0.0.1:8848/nacos,打开 Nacos 的控制台;若 Nacos 集群启动成功,可以看到多个 Nacos 节点,Docker 的映射端口分别是 8848、8849、8850

docker-nacos-cluster

Prometheus 与 Grafana 监控

在 Nacos 官方的 Docker 项目里,Nacos 单机版(Derby、MySQL 5.7)默认集成了 Prometheus 与 Grafana 监控,一般情况下开箱即用。

4.0、创建并启动容器

1
2
# 创建并后台启动容器
# docker-compose -f example/standalone-mysql-5.7.yaml up -d

4.1、调用 OPEN API

为了让 Prometheus 与 Grafana 的监控面板有数据可显示,调用 OPEN API 插入模拟数据

1
2
3
4
5
# 发布配置
$ curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=helloWorld"

# 服务注册
$ curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'

4.2、访问 Prometheus 的控制台

  • 1)浏览器访问 http://127.0.0.1:9090/graph,打开 Prometheus 的控制台,查看 Prometheus 采集到的 Nacos Metrics 数据
  • 2)在搜索栏搜索 nacos_monitor,若可以搜索到 Nacos 的数据,则说明 Prometheus 采集数据成功
  • 3)若 Prometheus 采集不到数据,浏览器访问 http://{ip}:8848/nacos/actuator/prometheus,看能不能获取到 Nacos 的 Metrics 数据

docker-nacos-single-prometheus

4.3、访问 Grafana 的控制台

  • 1)下载 Nacos 的 Grafana 监控模版文件
1
2
3
4
5
6
7
8
9
10
11
# 拉取Nacos Template项目的源码
$ git clone https://github.com/nacos-group/nacos-template

# 后面要用到 nacos-grafana.json 监控模版文件
# tree -N
├── nacos-grafana.json
├── nacos-sync-grafana
├── README.md
├── 方案评审内容模板.md
├── 模板-Nacos(微软黑体).ppt
└── 模板-Nacos(微软黑体)新版本.key
  • 2)浏览器访问 http://127.0.0.1:3000,默认登录的用户名和密码为 admin/admin,首次登录会提示重新设置新密码

docker-nacos-grafana-bashboard

  • 3)创建 Prometheus 数据源

docker-nacos-grafana-datasource

docker-nacos-grafana-datasource-1

特别注意:Grafana 创建 Prometheus 新数据源时,数据源名称(区分英文大小写)必须是 prometheus,数据源地址必须是 http://prometheus:9090,否则会获取不到监控数据或者提示 Gateway 相关的错误信息

docker-nacos-grafana-datasource-2

  • 4)导入 Nacos 的 Grafana 监控模版文件 nacos-grafana.json

docker-nacos-grafana-datasource-3

docker-nacos-grafana-datasource-4

  • 5)Nacos Grafana 展示的核心监控项

docker-nacos-grafana-datasource-5

Docker 部署问题汇总

5.0、MySQL 启动失败

发现 MySQL 容器启动失败

1
2
3
4
5
6
7
# 查看容器的运行状态
$ docker-compose -f example/standalone-mysql-5.7.yaml ps

grafana /run.sh Up 0.0.0.0:3000->3000/tcp
mysql docker-entrypoint.sh mysqld Exit 1
nacos-standalone-mysql bin/docker-startup.sh Up 0.0.0.0:8848->8848/tcp, 0.0.0.0:9555->9555/tcp
prometheus /bin/prometheus --config.f ... Up 0.0.0.0:9090->9090/tcp

查看 MySQL 的日志信息,发现可能是 MySQL 首次启动时生成相关证书(登录)失败导致

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 查看容器的运行状态
$ docker-compose -f example/standalone-mysql-5.7.yaml logs mysql

mysql | Database initialized
mysql | Initializing certificates
mysql | Generating a RSA private key
mysql | ..+++++
mysql | ..................................+++++
mysql | unable to write 'random state'
mysql | writing new private key to 'ca-key.pem'
mysql | -----
mysql | Generating a RSA private key
mysql | .......................+++++
mysql | ......+++++
mysql | unable to write 'random state'
mysql | writing new private key to 'server-key.pem'
mysql | -----
mysql | Generating a RSA private key
mysql | ..............................................................+++++
mysql | ...............+++++
mysql | unable to write 'random state'
mysql | writing new private key to 'client-key.pem'
mysql | -----
mysql | mysql_ssl_rsa_setup: Can't change permissions of the file 'ca-key.pem' (Errcode: 1 - Operation not permitted)
mysql | 2020-03-12 22:13:39 [ERROR] Error setting file permissions forca-key.pem and ca.pem
mysql | mysql_ssl_rsa_setup: Can't change permissions of the file 'server-key.pem' (Errcode: 1 - Operation not permitted)
mysql | 2020-03-12 22:13:39 [ERROR] Error setting file permissions forserver-key.pem and server-cert.pem
mysql | mysql_ssl_rsa_setup: Can't change permissions of the file 'client-key.pem' (Errcode: 1 - Operation not permitted)
mysql | 2020-03-12 22:13:39 [ERROR] Error setting file permissions forclient-key.pem and client-cert.pem

关闭所有容器,然后再重启所有容器,至此 MySQL 容器可以正常启动

1
2
3
4
5
6
7
8
9
10
11
12
13
# 关闭所有容器
# docker-compose -f example/standalone-mysql-5.7.yaml stop

# 启动所有容器
# docker-compose -f example/standalone-mysql-5.7.yaml start

# 查看容器的运行状态
$ docker-compose -f example/standalone-mysql-5.7.yaml ps

grafana /run.sh Up 0.0.0.0:3000->3000/tcp
mysql docker-entrypoint.sh mysqld Up 0.0.0.0:3309->3306/tcp, 33060/tcp
nacos-standalone-mysql bin/docker-startup.sh Up 0.0.0.0:8848->8848/tcp, 0.0.0.0:9555->9555/tcp
prometheus /bin/prometheus --config.f ... Up 0.0.0.0:9090->9090/tcp

5.1、Nacos 启动失败

5.1.1、原因分析

容器虽然都启动成功了,但浏览器无法访问 http://127.0.0.1:8848/nacos,查看 Nacos 的日志文件,发现有 No DataSource set 相关的异常信息,也就是 Nacos Server 无法正常连接到 MySQL 数据库

1
2
3
4
5
6
7
8
9
10
11
# 查看Nacos的日志文件
$ tail -n 20 example/standalone-logs/nacos.log

Caused by: java.lang.IllegalStateException: No DataSource set
at org.springframework.util.Assert.state(Assert.java:73)
at org.springframework.jdbc.support.JdbcAccessor.obtainDataSource(JdbcAccessor.java:77)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:371)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:452)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:462)
at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:473)
at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:480)

经过排查,发现可能是以下几方面原因造成:

  • 1)开启系统防火墙导致
  • 2)在 MySQL 的配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf 里,开启了 bind 127.0.0.1 配置项,导致外部无法连接
  • 3)在 MySQL 数据库里不存在 nacos 用户,这是因为在 env 目录下的 Docker-Compose 环境配置文件中,指定了 Nacos 默认连接 MySQL 时使用的用户名和密码为 nacos/nacos
  • 4)在 MySQL 数据库里不存在 nacos_devtest 数据库,这是因为在 env 目录下的 Docker-Compose 环境配置文件中,指定了 Nacos 默认连接的 MySQL 数据库为 nacos_devtest

分析结果:各种假设经过逐一验证后,最终发现导致 Nacos 无法连接 MySQL 数据库的原因,是因为在 MySQL 数据库中,不存在 nacos 用户,同时也不存在 nacos_devtest 数据库,即 MySQL 数据库里没有被初始化过

5.1.2、初始化 MySQL 数据库

温馨提示:以下数据库初始化操作适用于 MySQL 5.7、MySQL 8,同时适用于 Nacos 单机模式和集群模式。若使用了不同的 YAML 配置文件来管理 Nacos 的镜像和容器,此时只需要将下列命令中的 example/xxx.yaml 替换为自己所使用的 YAML 配置文件的路径即可。


拷贝 Nacos 源码目录下的数据库初始化脚本 nacos-mysql.sql 到 MySQL 容器的根目录下,并在 MySQL 容器内通过命令行登录进 MySQL 数据库

1
2
3
4
5
6
7
8
9
10
11
# 启动所有容器
# docker-compose -f example/standalone-mysql-5.7.yaml start

# 拷贝数据库初始化脚本到MySQL容器的根目录下
# docker cp nacos/distribution/conf/nacos-mysql.sql mysql:/

# 连接MySQL容器
# docker exec -it mysql /bin/bash

# 在MySQL容器内,通过命令行登录进MySQL数据库;在终端输入"mysql"后,直接按下回车键即可,不需要指定数据库的用户名和密码,默认是以root用户登录
# mysql

在 MySQL 的容器内登录进 MySQL 数据库后,执行数据库初始化操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# 创建用户
mysql> CREATE USER 'nacos'@'%' IDENTIFIED WITH mysql_native_password BY 'nacos';

# 创建数据库
mysql> create database nacos_devtest default character set utf8;

# 用户授权访问
mysql> GRANT ALL ON nacos_devtest.* TO 'nacos'@'%';

# 刷新权限
mysql> flush privileges;

# 切换数据库
mysql> use nacos_devtest;

# 执行数据库初始化脚本
mysql> source /nacos-mysql.sql;

# 查看数据库表
mysql> show tables;
+------------------------+
| Tables_in_nacos_devtest |
+------------------------+
| config_info |
| config_info_aggr |
| config_info_beta |
| config_info_tag |
| config_tags_relation |
| group_capacity |
| his_config_info |
| permissions |
| roles |
| tenant_capacity |
| tenant_info |
| users |
+------------------------+
12 rows in set (0.00 sec)

# 退出登录MySQL
mysql> exit

# 清理MySQL容器内的初始化脚本
# rm -f /nacos-mysql.sql

# 断开MySQL容器的连接
# exit

# 重启所有容器
# docker-compose -f example/standalone-mysql-5.7.yaml restart

容器重启后,若在 Nacos 的日志文件里观察到以下内容,则说明 Nacos 可以正常启动

1
2
3
4
5
6
7
8
9
10
11
12
13
# tail -n 20 example/standalone-logs/nacos.log

2020-03-12 23:01:50,062 INFO Initializing ExecutorService 'taskScheduler'
2020-03-12 23:01:50,092 INFO Exposing 16 endpoint(s) beneath base path '/actuator'
2020-03-12 23:01:50,240 INFO Tomcat started on port(s): 8848 (http) with context path '/nacos'
2020-03-12 23:01:50,245 INFO Started Nacos in 12.964 seconds (JVM running for 13.92)
2020-03-12 23:01:50,246 INFO Nacos Log files: /home/nacos/logs
2020-03-12 23:01:50,247 INFO Nacos Log files: /home/nacos/conf
2020-03-12 23:01:50,247 INFO Nacos Log files: /home/nacos/data
2020-03-12 23:01:50,248 INFO Nacos started successfully in stand alone mode. use external storage
2020-03-12 23:01:55,147 INFO Initializing Spring DispatcherServlet 'dispatcherServlet'
2020-03-12 23:01:55,147 INFO Initializing Servlet 'dispatcherServlet'
2020-03-12 23:01:55,169 INFO Completed initialization in 22 ms

Docker 属性配置列表

属性名称描述选项
MODE 系统启动方式:集群 / 单机 cluster/standalone 默认 cluster
NACOS_SERVERS 集群地址 p1:port1 空格 ip2:port2 空格 ip3:port3
PREFER_HOST_MODE 支持 IP 还是域名模式 hostname/ip 默认 ip
NACOS_SERVER_PORTNacos 运行端口默认 8848
NACOS_SERVER_IP 多网卡模式下可以指定 IP
SPRING_DATASOURCE_PLATFORM 单机模式下支持 MYSQL 数据库 mysql / 空 默认:空
MYSQL_SERVICE_HOST 数据库连接地址
MYSQL_SERVICE_PORT 数据库端口默认 : 3306
MYSQL_SERVICE_DB_NAME 数据库库名
MYSQL_SERVICE_USER 数据库用户名
MYSQL_SERVICE_PASSWORD 数据库用户密码
MYSQL_SERVICE_DB_PARAM 数据库连接参数 default : characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
MYSQL_DATABASE_NUMIt indicates the number of database 默认 :1
JVM_XMS-Xms 默认 :2g
JVM_XMX-Xmx 默认 :2g
JVM_XMN-Xmn 默认 :1g
JVM_MS-XX:MetaspaceSize 默认 :128m
JVM_MMS-XX:MaxMetaspaceSize 默认 :320m
NACOS_DEBUG 是否开启远程 DEBUGy/n 默认 :n
TOMCAT_ACCESSLOG_ENABLEDserver.tomcat.accesslog.enabled 默认 :false
NACOS_AUTH_SYSTEM_TYPE 权限系统类型选择,目前只支持 nacos 类型默认 :nacos
NACOS_AUTH_ENABLE 是否开启权限系统默认 :false
NACOS_AUTH_TOKEN_EXPIRE_SECONDStoken 失效时间默认 :18000
NACOS_AUTH_TOKENtoken 默认 :SecretKey012345678901234567890123456789012345678901234567890123456789
NACOS_AUTH_CACHE_ENABLE 权限缓存开关,开启后权限缓存的更新默认有 15 秒的延迟默认 : false
MEMBER_LIST 通过环境变量的方式设置集群地址例子:192.168.16.101:8847?raft_port=8807,192.168.16.101?raft_port=8808,192.168.16.101:8849?raft_port=8809
EMBEDDED_STORAGE 是否开启集群嵌入式存储模式embedded 默认 : none

参考资料