Docker 安装 Nacos 并开启鉴权

目录

Docker 安装 Nacos 并开启鉴权

背景环境

  • 适用于本地开发、测试或生产环境下,需快速部署 Nacos 注册中心。

关键字

Nacos、Docker、鉴权、持久化、配置、SpringBoot


安装步骤

1. 拉取 Nacos 镜像

sudo docker pull nacos/nacos-server:latest

2. 启动 Nacos(单机模式)

基础启动命令

sudo docker run -d \
  --name nacos \
  -p 8848:8848 \
  -p 9848:9848 \
  -e MODE=standalone \
  -v ./data:/home/nacos/data \
  -v ./logs:/home/nacos/logs \
  nacos/nacos-server:latest

启用鉴权(推荐)

如需账号密码登录,需开启鉴权并配置密钥:

sudo docker run -d \
  --name nacos \
  -p 8848:8848 \
  -p 9848:9848 \
  -e MODE=standalone \
  -e NACOS_AUTH_ENABLE=true \
  -e NACOS_AUTH_TOKEN='+b9rXb6DXKgqh/Va73DInBBRIKGpauxc2iKORLl4KT8=' \
  -e NACOS_AUTH_IDENTITY_KEY=nacos \
  -e NACOS_AUTH_IDENTITY_VALUE=nacos \
  -v ./data:/home/nacos/data \
  -v ./logs:/home/nacos/logs \
  nacos/nacos-server:latest

启动以后,通过:http://{{ip}}:8848/nacos/index.html 访问Web界面。


关键配置说明

  • NACOS_AUTH_ENABLE:是否开启鉴权(true/false)。
  • NACOS_AUTH_ENABLE_USER_AGENT_AUTH_WHITE:允许特定 User-Agent(如浏览器或 curl)绕过身份校验。
  • NACOS_AUTH_TOKEN:JWT 密钥,必须为 Base64 编码且长度 ≥ 32 字节。
  • NACOS_AUTH_IDENTITY_KEY / NACOS_AUTH_IDENTITY_VALUE:客户端请求时校验服务端身份,增强安全性。客户端需在 HTTP Header 中携带对应键值。
    • 示例(SpringBoot 配置):

      spring:
        cloud:
          nacos:
            discovery:
              headers:
                X-Nacos-Server-Identity: nacos  # 与 NACOS_AUTH_IDENTITY_VALUE 一致
      

安全建议

  • 建议生产环境开启 NACOS_AUTH_IDENTITY_KEY/IDENTITY_VALUE,提升安全性。
  • 本地开发/测试环境可忽略上述身份校验参数,但存在安全风险。

管理员密码初始化(2.4.0+)

自 2.4.0 版本起,Nacos 不再内置默认管理员密码。首次开启鉴权后,需通过 API 或控制台初始化密码:

curl -X POST 'http://$nacos_server_host:$nacos_server_port/nacos/v1/auth/users/admin' -d "password=$your_password"

返回示例:

{"username":"nacos", "password":"$your_password"}

其它

  • 通过 curl 的方式设置密码,密码中会出现特殊字符时需要特殊处理,比如出现"&",推荐使用url编码"%26"。没有问题忽略。
  • 查看配置文件:
docker cp nacos:/home/nacos/conf/application.properties ./