Ubuntu 22.04 (WSL2) 上使用 Docker 安装 Nacos 3.0.0

发布于:2025-05-09 ⋅ 阅读:(14) ⋅ 点赞:(0)

Ubuntu 22.04 (WSL2) 上使用 Docker 安装 Nacos 3.0.0

关键点

  • 安装步骤:在 Ubuntu 22.04 (WSL) 上通过 Docker 安装 Nacos 3.0.0 涉及创建日志目录、生成认证令牌、运行容器并访问控制台。
  • 认证要求:Nacos 3.0.0 默认启用认证,需配置 NACOS_AUTH_TOKEN 等参数,首次访问控制台需设置管理员密码。
  • 控制台访问:控制台通过 http://localhost:8080/index.html 访问,与 2.x 版本的 8848 端口不同。
  • 版本差异:Nacos 3.0.0 引入了新的控制台端口、增强的认证机制和独立控制台部署支持。

简介

Nacos(Dynamic Naming and Configuration Service)是一个由阿里巴巴开源的平台,用于动态服务发现、配置管理和服务管理。它在微服务架构中扮演着重要角色,支持服务注册、配置中心和动态路由等功能。本文详细介绍如何在 Ubuntu 22.04 的 WSL 环境中通过 Docker 安装 Nacos 3.0.0,并探讨其与 2.x 版本的区别。

前置条件

在开始之前,请确保满足以下条件:

  • Docker 已安装:运行 docker --version 确认 Docker 正常工作。
  • Ubuntu 22.04 (WSL):确保 WSL 环境配置正确,网络连接畅通。
  • 端口可用:确认 8080(控制台)、8848(服务器)和 9848(gRPC)端口未被占用。
  • 权限:需要 root 或 sudo 权限执行命令。

安装步骤

步骤 1:创建日志目录

Nacos 需要一个持久化的日志目录来存储运行日志。我们在主机上创建 /home/nacos/logs 目录,并设置权限以确保容器可以写入。

# 创建日志目录
mkdir -p /home/nacos/logs
# 设置读写权限(开发/测试环境)
chmod 777 -R /home/nacos/*

注意chmod 777 仅适合开发/测试环境。在生产环境中,建议使用更严格的权限,如 chmod 755

步骤 2:生成认证令牌和身份标识

Nacos 3.0.0 默认启用认证,需要配置以下环境变量:

  • NACOS_AUTH_TOKEN:认证令牌,需为长度大于 32 位的随机字符串,经 Base64 编码。
  • NACOS_AUTH_IDENTITY_KEY:服务器身份标识键。
  • NACOS_AUTH_IDENTITY_VALUE:服务器身份标识值。
生成认证令牌
  1. 使用在线工具(如 密码生成器)生成一个 64 位随机密码,例如:

    X7kPqW9mT2rY8vL3nF6tJ0zB5cH1dQ2xA9eR4uM8iK7oP3wS6yN2lV0jG5fT
    
  2. 使用 Base64 编码工具(如 Base64 编码器 )将密码编码,得到:

    WDdrUHFYOXZWMnJZOFRXOEZuTDZOQXhQd0I1Y0gxZFEyeEE5ZVI0dU04aUs3b1AzdyN2TjJsVjBqRzVmVA==
    

记下编码后的令牌,稍后在 Docker 命令中使用。

设置身份标识
  • NACOS_AUTH_IDENTITY_KEYNACOS_AUTH_IDENTITY_VALUE 可以设置为简单字符串,如 nacosnacos
  • 为提高安全性,建议使用随机字符串,例如:
    • NACOS_AUTH_IDENTITY_KEYserver_key_123
    • NACOS_AUTH_IDENTITY_VALUEserver_value_456

步骤 3:启动 Nacos 容器

以下是启动 Nacos 3.0.0 的 Docker 命令,包含详细注释:

docker run -d \
  # 后台运行容器
  --name nacos \
  # 容器名称为 nacos
  -p 8080:8080 \
  # 映射控制台端口(Nacos 3.0.0 使用 8080)
  -p 8848:8848 \
  # 映射服务器端口(服务注册和配置管理)
  -p 9848:9848 \
  # 映射 gRPC 端口(高性能客户端通信)
  -e MODE=standalone \
  # 设置单机模式,适合开发/测试
  -e PREFER_HOST_MODE=hostname \
  # 使用主机名模式,避免 WSL 网络问题
  -e NACOS_AUTH_TOKEN='your_base64_encoded_token' \
  # 设置 Base64 编码的认证令牌
  -e NACOS_AUTH_IDENTITY_KEY='nacos' \
  # 设置服务器身份标识键
  -e NACOS_AUTH_IDENTITY_VALUE='nacos' \
  # 设置服务器身份标识值
  -v /home/nacos/logs:/home/nacos/logs \
  # 挂载日志目录到主机
  nacos/nacos-server:v3.0.0
  # 使用 Nacos 3.0.0 镜像
参数说明
参数 描述
-p 8080:8080 映射控制台端口,访问 Nacos 控制台。
-p 8848:8848 映射服务器端口,用于服务注册和配置管理。
-p 9848:9848 映射 gRPC 端口,用于高性能客户端通信。
-e MODE=standalone 设置单机模式,适合开发/测试环境。
-e PREFER_HOST_MODE=hostname 使用主机名解析,避免 WSL 网络问题。
-e NACOS_AUTH_TOKEN 设置认证令牌,用于 API 认证。
-e NACOS_AUTH_IDENTITY_KEY 设置服务器身份标识键。
-e NACOS_AUTH_IDENTITY_VALUE 设置服务器身份标识值。
-v /home/nacos/logs:/home/nacos/logs 持久化日志到主机目录。

注意

  • 确保替换 your_base64_encoded_token 为实际的 Base64 编码令牌。
  • 如果不需要 gRPC 通信,可以省略 -p 9848:9848
  • NACOS_AUTH_ENABLE=true 在 3.0.0 中默认启用,无需显式设置。

步骤 4:访问 Nacos 控制台

容器启动后,打开浏览器访问 Nacos 控制台

首次访问
  • Nacos 3.0.0 默认启用认证,初始用户名为 nacos,但密码需在首次访问时设置。
  • 访问 http://localhost:8080/index.html 后,系统会提示您为 nacos 用户设置初始密码。
  • 建议设置强密码,例如:Nacos@123456
登录控制台
  • 使用用户名 nacos 和您设置的密码登录。
  • 登录后,可在控制台进行配置管理、服务注册等操作。

步骤 5:验证安装

  1. 检查容器状态:

    docker ps
    

    确认 nacos 容器正在运行。

  2. 检查日志:

    docker logs nacos
    

    查找类似

    Nacos started successfully in standalone mode
    

    的日志,确认启动成功。

  3. 访问控制台:验证是否可以登录并使用控制台功能。

Nacos 3.0.0 与 2.x 的区别

Nacos 3.0.0 相较于 2.x 版本在架构、功能和安全性方面有显著改进。以下是主要区别:

特性 Nacos 3.0.0 Nacos 2.x
控制台端口 使用 8080 端口,访问 http://localhost:8080/index.html 使用 8848 端口,访问 http://localhost:8848/nacos
认证机制 默认启用认证,需配置 NACOS_AUTH_TOKENNACOS_AUTH_IDENTITY_KEYNACOS_AUTH_IDENTITY_VALUE。控制台需设置初始密码。 认证可选,默认禁用,需手动启用。
控制台部署 支持独立控制台部署,适合复杂场景。 控制台与服务器耦合。
协议支持 支持 xDS 协议(EDS、LDS、RDS、CDS),增强与 Service Mesh 集成。 无 xDS 协议支持。
技术栈 升级到 Spring Boot 3.x 和 JDK 17。 使用 Spring Boot 2.x 和 JDK 8/11。
性能优化 优化 gRPC 通信和配置推送,内存占用更低。 性能稍逊,推送延迟较高。
API 变更 引入 v3 控制台 API,旧 v1 API 默认禁用。 使用 v1 控制台 API。
MCP Registry 引入了对 MCP (Model Content Protocol) 的支持 -

注意事项

  • 端口冲突:启动容器前,确保 808088489848 端口未被占用。

  • WSL 网络:WSL2 可能需要配置网络转发,确保 localhost:8080 可访问。

  • 日志管理:定期清理 /home/nacos/logs 目录,避免磁盘空间不足。

  • 生产环境:

    • 单机模式仅适合开发/测试,生产环境建议使用集群模式并配置外部数据库(如 MySQL)。
    • 更改默认用户名/密码,并使用更强的认证令牌。
  • Docker 镜像:本文使用 nacos/nacos-server:v3.0.0,建议检查 Docker Hub 获取最新版本。

总结

通过以上步骤,您可以在 Ubuntu 22.04 (WSL) 上成功部署 Nacos 3.0.0。Nacos 3.0.0 的新控制台端口、增强的认证机制和独立部署支持使其更适合现代微服务架构。


网站公告

今日签到

点亮在社区的每一天
去签到