Docker Compose 快速部署单机版 Nacos:从零到一的完整指南
2025.09.17 11:04浏览量:0简介:本文详细介绍如何使用 Docker Compose 快速部署单机版 Nacos,涵盖环境准备、配置优化、安全加固及常见问题解决方案,适合开发者和运维人员参考。
一、为什么选择 Docker Compose 部署单机 Nacos?
Nacos 作为阿里开源的动态服务发现、配置和服务管理平台,在微服务架构中扮演核心角色。单机部署适用于开发测试、小型项目或边缘计算场景,而 Docker Compose 通过声明式配置文件(docker-compose.yml
)将容器编排简化,避免了手动命令的繁琐操作,尤其适合快速迭代的环境。其优势包括:
- 环境一致性:通过 YAML 文件定义服务依赖、网络和存储,确保开发、测试和生产环境高度一致。
- 资源隔离:每个服务(如 Nacos、MySQL)运行在独立容器中,避免端口冲突和依赖冲突。
- 快速启停:一条命令即可启动或停止整个服务栈,适合频繁重启的开发场景。
- 可扩展性:未来可轻松扩展为集群模式,仅需调整配置文件。
二、环境准备与依赖检查
1. 基础环境要求
- Docker 版本:建议使用 Docker 20.10+ 或 Podman(需适配 Compose 语法)。
- 系统资源:单机 Nacos 默认配置需要至少 2GB 内存和 2 核 CPU,建议生产环境增加资源。
- 操作系统:Linux(推荐 Ubuntu/CentOS)或 macOS(需 Docker Desktop),Windows 需 WSL2 支持。
2. 安装 Docker Compose
- Linux/macOS:通过官方脚本安装:
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
- Windows:通过 Docker Desktop 集成安装,或手动下载二进制文件。
验证安装:
docker-compose --version
三、Docker Compose 配置详解
1. 基础配置文件
创建 docker-compose.yml
文件,核心配置如下:
version: '3.8'
services:
nacos:
image: nacos/nacos-server:latest
container_name: nacos-standalone
environment:
- MODE=standalone
- PREFER_HOST_MODE=hostname
- JVM_XMS=512m
- JVM_XMX=512m
- JVM_XMN=256m
ports:
- "8848:8848" # Nacos 默认端口
- "9848:9848" # 集群通信端口(单机可忽略)
volumes:
- ./nacos-data:/home/nacos/data
- ./nacos-logs:/home/nacos/logs
restart: unless-stopped
关键参数解析
MODE=standalone
:强制单机模式运行,避免集群配置错误。- JVM 内存参数:根据机器资源调整,避免 OOM(建议生产环境不低于 2GB)。
- 数据持久化:通过卷(
volumes
)挂载数据和日志目录,防止容器删除后数据丢失。
2. 高级配置优化
自定义配置文件
若需修改 application.properties
或 cluster.conf
,可通过以下方式覆盖:
- 创建本地配置目录:
mkdir -p ./nacos-conf
echo "nacos.standalone=true" > ./nacos-conf/application.properties
- 修改
docker-compose.yml
:volumes:
- ./nacos-conf:/home/nacos/conf
网络配置
默认使用桥接网络,如需自定义网络(如与数据库隔离):
networks:
nacos-net:
driver: bridge
services:
nacos:
networks:
- nacos-net
四、启动与验证
1. 启动服务
docker-compose up -d
-d
:后台运行。- 首次启动会下载镜像,可通过
docker-compose logs -f
查看实时日志。
2. 验证服务
- 访问控制台:浏览器打开
http://localhost:8848/nacos
,默认账号密码为nacos/nacos
。 - API 测试:
返回curl -X GET "http://localhost:8848/nacos/v1/ns/service/list"
[]
表示服务正常。
3. 常见问题解决
- 端口冲突:修改
ports
映射或停止占用端口的进程。 - JVM 崩溃:检查日志(
docker-compose logs nacos
),调整JVM_XMS/XMX
。 - 数据目录权限:确保宿主机目录有读写权限:
chmod -R 777 ./nacos-data
五、安全加固建议
1. 基础安全措施
- 修改默认密码:登录控制台后,在“权限管理”→“用户列表”中修改。
- 限制访问 IP:通过 Nginx 反向代理或防火墙规则限制来源 IP。
2. 数据备份
定期备份数据目录:
tar -czvf nacos-backup-$(date +%Y%m%d).tar.gz ./nacos-data
3. 升级策略
关注 Nacos 官方 Docker 镜像更新,升级前备份数据:
docker-compose pull
docker-compose down
docker-compose up -d
六、扩展场景:与 MySQL 集成
单机 Nacos 默认使用嵌入式 Derby 数据库,如需持久化到 MySQL:
- 创建 MySQL 容器:
mysql:
image: mysql:8.0
environment:
- MYSQL_ROOT_PASSWORD=root123
- MYSQL_DATABASE=nacos
volumes:
- ./mysql-data:/var/lib/mysql
- 修改 Nacos 配置:
environment:
- MODE=standalone
- SPRING_DATASOURCE_PLATFORM=mysql
- MYSQL_SERVICE_HOST=mysql
- MYSQL_SERVICE_PORT=3306
- MYSQL_SERVICE_DB_NAME=nacos
- MYSQL_SERVICE_USER=root
- MYSQL_SERVICE_PASSWORD=root123
- 初始化 MySQL 表结构(从 Nacos GitHub 仓库获取
nacos-mysql.sql
)。
七、总结与最佳实践
- 资源监控:使用
docker stats
或 Prometheus 监控容器资源使用。 - 日志管理:通过
ELK
或Fluentd
集中收集日志。 - 配置版本化:将
docker-compose.yml
和配置文件纳入 Git 管理。 - 灾难恢复:定期测试容器重建和数据恢复流程。
通过 Docker Compose 部署单机 Nacos,开发者可以快速获得一个稳定、可维护的服务发现和配置中心,为微服务架构提供坚实基础。未来如需扩展为集群,仅需调整 MODE=cluster
并配置节点列表即可平滑升级。
发表评论
登录后可评论,请前往 登录 或 注册