以下是使用 Docker 拉取并运行 Nacos(阿里巴巴开源的配置中心和服务发现组件)镜像的详细指南:
1. 拉取 Nacos 官方镜像
拉取最新版 Nacos 镜像(推荐指定版本以避免兼容性问题):
# 拉取最新版本(可能为 2.x 系列)
docker pull nacos/nacos-server
# 或指定版本(例如 3.0.1)
docker pull nacos/nacos-server:3.0.1
2. 运行 Nacos 容器
单机模式(开发测试)
docker run \
--name nacos-standalone -d -p 8080:8080 \
-e NACOS_AUTH_TOKEN=$(openssl rand -base64 128 | tr -d '\n' | tr -d '/') \
-e NACOS_AUTH_IDENTITY_KEY=nacos \
-e NACOS_AUTH_IDENTITY_VALUE=nacos \
-e NACOS_AUTH_ENABLE=false \
-e MODE=standalone \
nacos/nacos-server:v3.0.1-slim
运行镜像(开启鉴权):
docker run \
--name nacos-standalone -d -p 8080:8080 \
-e NACOS_AUTH_ENABLE=true \
-e MODE=standalone \
-e NACOS_AUTH_TOKEN=BladeKey012345678901234567890123456789012345678901234567890123456789 \
-e NACOS_AUTH_IDENTITY_KEY=nacos \
-e NACOS_AUTH_IDENTITY_VALUE=nacos \
-e NACOS_AUTH_CACHE_ENABLE=true \
nacos/nacos-server:v3.0.1-slim
参数说明:
- -e MODE=standalone:单机模式运行(默认集群模式需额外配置)。设置 Nacos 为单机模式。
- -p 8848:8848:映射 Nacos 控制台端口。
- -p 9848:9848:Nacos 3.x 使用 gRPC 通信,需开放此端口。
- -p 9849:9849:Nacos 的 gRPC 端口,用于集群通信。
- -e NACOS_AUTH_ENABLE=false :禁用 Nacos 的认证功能。
3. 连接外部数据库(需配置)
默认使用嵌入式数据库 Derby,生产环境建议切换为 MySQL:
步骤:
- 创建 MySQL 数据库:
CREATE DATABASE nacos_config CHARACTER SET utf8mb4;
- 执行 Nacos SQL 脚本:
下载脚本:
导入数据库:
mysql -u root -p nacos_config < nacos-mysql.sql
运行容器时指定 MySQL 配置:
docker run -d \
--name my-nacos \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=your_mysql_host \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=your_mysql_password \
-p 8848:8848 \
-p 9848:9848 \
-v nacos_data:/home/nacos/data \
nacos/nacos-server:2.3.1
4.访问 Nacos 控制台
- 地址:http://localhost:8848/nacos
- 默认账号/密码:nacos/nacos
5. 常见问题解决
端口冲突:
- 若宿主机 8848 或 9848 端口被占用,可修改映射端口:
-p 8858:8848 \
-p 9858:9848 \
容器启动失败:
- 检查日志定位问题:
docker logs nacos-standalone
数据持久化失败:
- 确保挂载的卷(nacos_data)有写入权限,或改用绑定挂载:
-v /path/on/host:/home/nacos/data \
6. 生产环境建议
- 集群部署:
- 修改MODE=cluster 并配置多节点。
- 需额外同步集群节点 IP 和端口。
- 安全加固:
修改默认密码,配置鉴权(需 Nacos 2.2.0+):
-e NACOS_AUTH_ENABLE=true \
-e NACOS_AUTH_TOKEN=your_secret_key \
3.资源限制:
限制容器内存和 CPU:
--memory 2g --cpus 2
7. 版本选择
- 稳定版:推荐 2.2.3 或 2.3.0(长期支持版本)。
- 最新版:适合测试新特性(谨慎用于生产)。
通过以上步骤,你可以快速在 Docker 中部署 Nacos 服务。如需更多配置,请参考 Nacos 官方文档。