Nacos
本文提供 Nacos 的配置示例与配置原因说明。
1. 目录与挂载约定
/app/nacos/
├─ docker-compose.yml
├─ logs/
└─ data/
说明:
logs:运行日志目录,便于排障与审计data:本地嵌入式存储目录(单机场景)
2. Compose 配置示例
/app/nacos/docker-compose.yml:
services:
nacos:
image: nacos/nacos-server:v3.1.1
container_name: nacos
restart: unless-stopped
environment:
PREFER_HOST_MODE: hostname
MODE: standalone
TZ: Asia/Shanghai
NACOS_AUTH_TOKEN: "<BASE64_TOKEN_OVER_32_CHARS>"
NACOS_AUTH_IDENTITY_KEY: "serverIdentity"
NACOS_AUTH_IDENTITY_VALUE: "security"
ports:
- "8080:8080"
- "8848:8848"
- "9848:9848"
volumes:
- ./logs:/home/nacos/logs
- ./data:/home/nacos/data
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/nacos/actuator/health"]
interval: 30s
timeout: 20s
retries: 3
start_period: 60s
配置原因:
- 使用
v3.1.1,与官方最新长期支持分支对齐 MODE=standalone适合单机部署,部署复杂度低- 默认仅挂载
logs/data,避免空目录覆盖镜像内置conf导致启动失败 - 3.x 要求显式配置
NACOS_AUTH_TOKEN、NACOS_AUTH_IDENTITY_KEY、NACOS_AUTH_IDENTITY_VALUE - 增加
healthcheck,可在编排层识别 Nacos 是否可用
3. 鉴权变量说明
NACOS_AUTH_TOKEN 需要使用 长度大于 32 字符 的密钥再进行 Base64 编码。可用以下命令生成:
openssl rand -base64 32
将输出结果填入 compose 的 NACOS_AUTH_TOKEN。
配置原因:
- 3.x 版本中鉴权相关参数属于必填项,缺失会导致启动异常
- 使用环境变量集中管理鉴权配置,便于运维统一修改
4. 可选:自定义 conf(高级)
/home/nacos/conf 是镜像内置目录。若直接挂载空目录,会把容器内默认文件"遮蔽",出现 nacos-logback.xml 缺失错误。
推荐流程:
# 1) 先创建宿主机目录
mkdir -p /app/nacos/conf
# 2) 先从镜像导出默认 conf 到宿主机
docker run --rm nacos/nacos-server:v3.1.1 sh -c "tar -C /home/nacos -cf - conf" | tar -C /app/nacos -xf -
# 3) 再在 compose 中挂载 conf(此时目录里已有默认文件)
# - ./conf:/home/nacos/conf
5. 故障排查:logback 文件缺失
若启动时报错:
/home/nacos/conf/nacos-logback.xml (No such file or directory)
说明你挂载了空 conf 目录。可按以下方式修复:
# 1) 临时移除 conf 挂载,仅保留 logs/data
# 2) 或先导出默认 conf 再挂载
mkdir -p /app/nacos/conf
docker run --rm nacos/nacos-server:v3.1.1 sh -c "tar -C /home/nacos -cf - conf" | tar -C /app/nacos -xf -
# 然后在 compose 中增加 conf 挂载
6. 常用命令
# 启动 Nacos
cd /app/nacos && docker compose up -d
# 关闭 Nacos
cd /app/nacos && docker compose down
# 查看容器日志
docker logs -f nacos