Docker 部署 Nacos 单机模式配置环境变量 standalone 怎么写?

文章导读
在 Docker 中部署 Nacos 单机模式,核心是通过环境变量设置 MODE=standalone,并配置数据持久化卷,否则默认集群模式无法启动且重启后数据丢失。
📋 目录
  1. 快速启动命令
  2. 关键配置说明
  3. 验证方法
  4. 常见问题排查
A A

在 Docker 中部署 Nacos 单机模式,核心是通过环境变量设置 MODE=standalone,并配置数据持久化卷,否则默认集群模式无法启动且重启后数据丢失。

核心结论:明确指定 MODE=standalone 是单机运行的必要条件,同时必须挂载数据卷防止配置丢失。

  • 适用场景:本地开发、功能测试或非高可用环境
  • 前置检查:确保宿主机的 8848、9848、9849 端口未被占用
  • 验收标准:容器日志显示 Nacos 以 standalone 模式启动且数据卷挂载成功

快速启动命令

以下命令基于官方镜像 2.2.0 版本,已包含内存限制与数据持久化配置,可直接复制执行:

docker run `--name` nacos-standalone -e MODE=standalone -e JAVA_OPTS="-Xms512m -Xmx512m" -v nacos-data:/home/nacos/data -p 8848:8848 -p 9848:9848 -p 9849:9849 -d nacos/nacos-server:2.2.0

关键配置说明

Nacos 的 Docker 镜像默认配置为生产环境安全的集群模式(cluster)。在集群模式下,节点间需要通过 Raft 协议选举,单机运行时无法完成选举流程,会导致服务不可用。设置 MODE=standalone 后,Nacos 会跳过集群协调逻辑。

Docker 部署 Nacos 单机模式配置环境变量 standalone 怎么写?

为什么必须挂载卷:默认情况下容器删除后内部数据会丢失。通过 -v nacos-data:/home/nacos/data 将数据目录映射到宿主机,确保重启容器后配置和服务数据依然存在。

版本选择建议:建议使用官方镜像并指定具体稳定版本(如 2.2.0),避免使用 latest 标签导致版本不一致或兼容性问题。

验证方法

  1. 查看日志:docker logs nacos-standalone,搜索关键词"Nacos started successfully"。
  2. 访问控制台:浏览器打开 http://localhost:8848/nacos,默认账号密码均为 nacos。
  3. 接口检查:curl http://localhost:8848/nacos/v1/console/health/readiness,返回 ok 表示服务就绪。

常见问题排查

  • 端口遗漏:Nacos 2.x 版本新增了 9848 和 9849 端口(gRPC 通信),只映射 8848 会导致客户端连接失败。
  • 内存溢出:默认 JVM 参数可能占用较大内存,本地低配机器建议手动调整 JAVA_OPTS,如 -Xms512m -Xmx512m。
  • 数据丢失:未挂载卷导致容器重建后配置消失,务必检查 -v 参数是否正确。
  • 版本差异:1.x 和 2.x 版本在端口和配置上有所不同,确保镜像标签与文档一致。