logo

Docker Compose 快速部署单机版 Nacos:从零到一的完整指南

作者:沙与沫2025.09.17 11:04浏览量:0

简介:本文详细介绍如何使用 Docker Compose 快速部署单机版 Nacos,涵盖环境准备、配置优化、安全加固及常见问题解决方案,适合开发者和运维人员参考。

一、为什么选择 Docker Compose 部署单机 Nacos?

Nacos 作为阿里开源的动态服务发现、配置和服务管理平台,在微服务架构中扮演核心角色。单机部署适用于开发测试、小型项目或边缘计算场景,而 Docker Compose 通过声明式配置文件(docker-compose.yml)将容器编排简化,避免了手动命令的繁琐操作,尤其适合快速迭代的环境。其优势包括:

  1. 环境一致性:通过 YAML 文件定义服务依赖、网络存储,确保开发、测试和生产环境高度一致。
  2. 资源隔离:每个服务(如 Nacos、MySQL)运行在独立容器中,避免端口冲突和依赖冲突。
  3. 快速启停:一条命令即可启动或停止整个服务栈,适合频繁重启的开发场景。
  4. 可扩展性:未来可轻松扩展为集群模式,仅需调整配置文件。

二、环境准备与依赖检查

1. 基础环境要求

  • Docker 版本:建议使用 Docker 20.10+ 或 Podman(需适配 Compose 语法)。
  • 系统资源:单机 Nacos 默认配置需要至少 2GB 内存和 2 核 CPU,建议生产环境增加资源。
  • 操作系统:Linux(推荐 Ubuntu/CentOS)或 macOS(需 Docker Desktop),Windows 需 WSL2 支持。

2. 安装 Docker Compose

  • Linux/macOS:通过官方脚本安装:
    1. curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    2. chmod +x /usr/local/bin/docker-compose
  • Windows:通过 Docker Desktop 集成安装,或手动下载二进制文件。

验证安装:

  1. docker-compose --version

三、Docker Compose 配置详解

1. 基础配置文件

创建 docker-compose.yml 文件,核心配置如下:

  1. version: '3.8'
  2. services:
  3. nacos:
  4. image: nacos/nacos-server:latest
  5. container_name: nacos-standalone
  6. environment:
  7. - MODE=standalone
  8. - PREFER_HOST_MODE=hostname
  9. - JVM_XMS=512m
  10. - JVM_XMX=512m
  11. - JVM_XMN=256m
  12. ports:
  13. - "8848:8848" # Nacos 默认端口
  14. - "9848:9848" # 集群通信端口(单机可忽略)
  15. volumes:
  16. - ./nacos-data:/home/nacos/data
  17. - ./nacos-logs:/home/nacos/logs
  18. restart: unless-stopped

关键参数解析

  • MODE=standalone:强制单机模式运行,避免集群配置错误。
  • JVM 内存参数:根据机器资源调整,避免 OOM(建议生产环境不低于 2GB)。
  • 数据持久化:通过卷(volumes)挂载数据和日志目录,防止容器删除后数据丢失。

2. 高级配置优化

自定义配置文件

若需修改 application.propertiescluster.conf,可通过以下方式覆盖:

  1. 创建本地配置目录:
    1. mkdir -p ./nacos-conf
    2. echo "nacos.standalone=true" > ./nacos-conf/application.properties
  2. 修改 docker-compose.yml
    1. volumes:
    2. - ./nacos-conf:/home/nacos/conf

网络配置

默认使用桥接网络,如需自定义网络(如与数据库隔离):

  1. networks:
  2. nacos-net:
  3. driver: bridge
  4. services:
  5. nacos:
  6. networks:
  7. - nacos-net

四、启动与验证

1. 启动服务

  1. docker-compose up -d
  • -d:后台运行。
  • 首次启动会下载镜像,可通过 docker-compose logs -f 查看实时日志。

2. 验证服务

  • 访问控制台:浏览器打开 http://localhost:8848/nacos,默认账号密码为 nacos/nacos
  • API 测试
    1. curl -X GET "http://localhost:8848/nacos/v1/ns/service/list"
    返回 [] 表示服务正常。

3. 常见问题解决

  • 端口冲突:修改 ports 映射或停止占用端口的进程。
  • JVM 崩溃:检查日志(docker-compose logs nacos),调整 JVM_XMS/XMX
  • 数据目录权限:确保宿主机目录有读写权限:
    1. chmod -R 777 ./nacos-data

五、安全加固建议

1. 基础安全措施

  • 修改默认密码:登录控制台后,在“权限管理”→“用户列表”中修改。
  • 限制访问 IP:通过 Nginx 反向代理或防火墙规则限制来源 IP。

2. 数据备份

定期备份数据目录:

  1. tar -czvf nacos-backup-$(date +%Y%m%d).tar.gz ./nacos-data

3. 升级策略

关注 Nacos 官方 Docker 镜像更新,升级前备份数据:

  1. docker-compose pull
  2. docker-compose down
  3. docker-compose up -d

六、扩展场景:与 MySQL 集成

单机 Nacos 默认使用嵌入式 Derby 数据库,如需持久化到 MySQL:

  1. 创建 MySQL 容器:
    1. mysql:
    2. image: mysql:8.0
    3. environment:
    4. - MYSQL_ROOT_PASSWORD=root123
    5. - MYSQL_DATABASE=nacos
    6. volumes:
    7. - ./mysql-data:/var/lib/mysql
  2. 修改 Nacos 配置:
    1. environment:
    2. - MODE=standalone
    3. - SPRING_DATASOURCE_PLATFORM=mysql
    4. - MYSQL_SERVICE_HOST=mysql
    5. - MYSQL_SERVICE_PORT=3306
    6. - MYSQL_SERVICE_DB_NAME=nacos
    7. - MYSQL_SERVICE_USER=root
    8. - MYSQL_SERVICE_PASSWORD=root123
  3. 初始化 MySQL 表结构(从 Nacos GitHub 仓库获取 nacos-mysql.sql)。

七、总结与最佳实践

  1. 资源监控:使用 docker stats 或 Prometheus 监控容器资源使用。
  2. 日志管理:通过 ELKFluentd 集中收集日志。
  3. 配置版本化:将 docker-compose.yml 和配置文件纳入 Git 管理。
  4. 灾难恢复:定期测试容器重建和数据恢复流程。

通过 Docker Compose 部署单机 Nacos,开发者可以快速获得一个稳定、可维护的服务发现和配置中心,为微服务架构提供坚实基础。未来如需扩展为集群,仅需调整 MODE=cluster 并配置节点列表即可平滑升级。

相关文章推荐

发表评论