Ubuntu 22.04 (WSL2) 上使用 Docker 安装 Nacos 3.0.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 目录,并设置权限以确保容器可以写入。

bash 复制代码
# 创建日志目录
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 命令,包含详细注释:

bash 复制代码
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. 检查容器状态:

    bash 复制代码
    docker ps

    确认 nacos 容器正在运行。

  2. 检查日志:

    bash 复制代码
    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 的新控制台端口、增强的认证机制和独立部署支持使其更适合现代微服务架构。

相关推荐
计算机小手20 小时前
使用 Poste.io 自建邮件服务器,Docker一键快速部署
经验分享·docker
warton881 天前
ubuntu24 安装 proxsql 实现数据库代理
linux·运维·mysql·ubuntu
天意pt1 天前
Blog-SSR 系统操作手册(v1.0.0)
前端·vue.js·redis·mysql·docker·node.js·express
会跑的葫芦怪1 天前
cursor 打开wsl Ubuntu项目
linux·运维·ubuntu
沫离痕1 天前
windows安装docker实例
windows·docker·容器
ChenYY~1 天前
双系统显卡冲突修复记录
ubuntu·显卡·黑屏·双系统·nvidia驱动
oMcLin1 天前
如何在 Ubuntu 22.04 LTS 上部署并优化 OpenStack 云计算平台,实现多租户虚拟化与弹性伸缩?
ubuntu·云计算·openstack
majingming1231 天前
ubuntu下的交叉编译
linux·运维·ubuntu
shchojj1 天前
ubuntu 因为写错pam.d文件引起的sudo权限丢失
linux·运维·ubuntu
唯情于酒1 天前
Docker部署若依(前后端分离版)
vue.js·docker·容器