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 字节。
- 生成方式:
openssl rand -base64 32
或使用 https://www.base64encode.org/ 在线网站生成
- 生成方式:
- 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 ./