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

相关推荐
抠脚学代码6 小时前
Ubuntu Qt x64平台搭建 arm64 编译套件
数据库·qt·ubuntu
Ribou8 小时前
Ubuntu 24.04.2安装k8s 1.33.4 配置cilium
linux·ubuntu·kubernetes
慕容晓开8 小时前
docker,本地目录挂载
docker
Mr. Cao code9 小时前
Docker:颠覆传统虚拟化的轻量级革命
linux·运维·ubuntu·docker·容器
Dontla9 小时前
Docker多共享网络配置策略(Docker多网络、Docker networks、Docker Compose网络、Docker网络、Docker共享网络)
网络·docker·容器
Jayin_chan10 小时前
paddlex3.0.1-ocr服务化安装部署(docker)
docker·容器·ocr
ifanatic10 小时前
[每周一更]-(第159期):Go 工程师视角:容器化技术(Docker/Kubernetes)与CI/CD流程的应用场景
docker·golang·kubernetes
感哥12 小时前
Docker镜像
docker
Dontla12 小时前
Dockerfile解析器指令(Parser Directive)指定语法版本,如:# syntax=docker/dockerfile:1
java·docker·eureka
理智的煎蛋14 小时前
CentOS/Ubuntu安装显卡驱动与GPU压力测试
大数据·人工智能·ubuntu·centos·gpu算力