用Docker装Nacos:从环境准备到微服务集成与报错排查全指南
2026/9/16 7:42:41 网站建设 项目流程

用Docker装Nacos,别再花一上午折腾环境了

先说个真实场景。上个月帮一个朋友搞微服务项目,他卡在Nacos安装这一步整整一个下午——先是在Windows上手动下载Nacos包,解压、改配置、跑startup.cmd,结果端口被占、JVM内存不够、集群模式起不来,换了三个版本才勉强跑通。后来我直接给他写了一条docker run命令,五分钟内控制台就出来了。他当时的表情,怎么说呢,像是发现新大陆。

这不是个例。Nacos作为Spring Cloud Alibaba体系里的注册中心和配置中心,几乎是微服务架构的标配。但你真要手动装,尤其是Windows环境,各种坑真的是防不胜防。这篇博文我准备从零开始,把dockernacos这件事掰开揉碎讲清楚,覆盖环境准备、镜像选型、单机部署、数据持久化、切MySQL/达梦库、微服务集成、常见报错排查,全程高能,建议收藏。

适合谁看?刚入门微服务、被Nacos安装折磨过的同学,以及想在生产环境用Docker规范部署Nacos的开发或者运维。有基础的老手也可以直接跳到第5章查报错。

1. 环境准备:你的Docker可能是第一道坎

1.1 镜像选型:别瞎拉最新版

先提醒一句,不要在Docker Hub上无脑docker pull nacos/nacos-server:latest。Nacos的版本策略和Spring Cloud Alibaba的版本对应关系很微妙,你本地微服务用的Spring Cloud Alibaba版本如果比较旧,拉一个Nacos 2.4.x很可能出现兼容问题。

我的建议是明确使用版本号。当前生产环境用得最稳的是2.2.3,它修复了早期2.x的一批bug,鉴权模型也相对成熟,和Spring Cloud Alibaba 2021.x、2022.x、2023.x都能配合。如果是新项目,可以考虑2.3.x,但务必先看一眼自己项目的spring-cloud-alibaba-version。旧项目,特别是那些还在用1.4.x的老Nacos客户端,老老实实装nacos-server:v1.4.3,别追求新。

另外要区分两个镜像名。nacos/nacos-server是官方标准镜像,优先选它。nacos/nacos-server:latest虽然省事,但是版本漂移严重,你今天拉的和下个月别人拉的同一标签可能不是一个构建,这种不确定性在生产环境非常危险。我个人的习惯是:docker image ls前先去GitHub的nacos-docker项目看一眼release标签,确认对应版本再拉。

1.2 Docker Desktop的经典翻车现场

标题里的热搜词里有这么一条,几乎每天都会有人踩:"virtualization support not detected"、 "Docker Desktop failed to start because virtualisation support wasn't detected"。

这个问题的根源只有一个:Docker Desktop在Windows/macOS上运行依赖虚拟化技术,Windows下依赖的是Hyper-V或者WSL 2。报这个错说明你的机器虚拟化功能没有正确开启。

排查步骤按照我下面的顺序来,基本都能解决:

  1. 重启进BIOS/UEFI,找"Intel Virtualization Technology"或"AMD SVM Mode",确认是Enabled。
  2. 检查Windows功能里Hyper-V是否启用。控制面板 -> 程序和功能 -> 启用或关闭Windows功能,勾选Hyper-V、虚拟机平台、适用于Linux的Windows子系统,三件套。
  3. 如果用的WSL 2,在PowerShell(管理员)执行wsl --set-default-version 2,再wsl --update
  4. 上述都做完,重启机器,再启动Docker Desktop。

这里有个小经验:很多人开了Hyper-V但没开"虚拟机监控程序",或者开了WSL但没在Docker Desktop设置里把引擎切到WSL 2,导致启动失败。打开Docker Desktop -> Settings -> General,确保勾选"Use the WSL 2 based engine"。

macOS平台的Intel芯片如果遇到类似报错,检查系统设置里是否允许Virtualization;Apple Silicon芯片一般没那么折腾,但要注意Docker Desktop版本不能太老。

注意:如果你的CPU较老,不支持虚拟化,那Docker Desktop是跑不起来的。这种情况别死磕,老老实实手动装Nacos,或者换Linux环境。

1.3 Docker常用命令速览

安装过程中你会反复用到下面几条,先有个概念:

  • docker pull <镜像名:tag>:拉镜像。
  • docker run -d --name <容器名> <镜像>:后台运行一个容器。
  • docker ps -a:查看所有容器,-a很重要,否则看不到已退出的容器。
  • docker logs -f <容器名>:实时看日志,排查问题的命根子。
  • docker exec -it <容器名> bash:进入容器内部,调试用。
  • docker rm -f <容器名>:强删容器。
  • docker volume ls:查看数据卷。

这些命令不需要背,用多了自然就记住了。真正难的是理解docker run那堆参数背后的逻辑,下面进入正题。

2. 安装部署:单机版一条命令,但参数要搞明白

2.1 最简启动命令

先给一条最简版本,五分钟内看到Nacos控制台:

docker run -d \ --name nacos-server \ -p 8848:8848 \ -p 9848:9848 \ -p 9849:9849 \ -e MODE=standalone \ nacos/nacos-server:v2.2.3

启动完成后,浏览器访问http://localhost:8848/nacos,默认用户名密码都是nacos,登录进去就能看到控制台。

这条命令看起来简单,但-p 9848:9848-p 9849:9849是很多新手最容易遗漏的。Nacos从2.x开始,客户端和服务端之间的gRPC长连接走的是8848+10008848+1001这两个端口,也就是9848和9849。只映射8848的话,服务注册、配置订阅都会莫名其妙失败,报错往往是Client not connected, current status:STARTING,但你还找不到头绪。

另外MODE=standalone意思是单机模式。Nacos默认以集群模式启动,如果没这个环境变量,容器启动后检测不到集群节点,日志会一直报错。这是新手安装最常遇到的第二个坑。

2.2 参数逐项拆解:别只会复制粘贴

上面那条命令只是"能跑",但你要理解每个参数在干什么,才能应对真正的业务需求。

  • -d:后台运行容器。不加的话终端会被日志刷屏,Ctrl+C容器就停了。
  • --name nacos-server:给容器起名字,后续操作都用这个名字指代。
  • -p 8848:8848:宿主机8848端口映射到容器8848端口。冒号左边是宿主机端口,右边是容器端口,修改左边可以换端口。
  • -p 9848:9848-p 9849:9849:gRPC主端口和gRPC增强端口。对应8848的偏移量+1000和+1001。
  • -e MODE=standalone:设置环境变量,指定单机模式。
  • -e NACOS_AUTH_ENABLE=true:开启鉴权。Nacos 2.2.3开始默认开启鉴权,新装的话建议显式设置这个参数,并配置NACOS_AUTH_TOKEN等参数,防止未授权访问。热搜词里有一条"nacos namespaces未授权访问漏洞",实际上很多就是因为早期版本没开鉴权或者用了默认token,被扫描器扫到。

还有一个参数容易被忽略:-e JVM_XMS=512m -e JVM_XMX=512m。Nacos默认JVM堆内存配置比较大(1.5G-2G),开发机内存不够的容器会直接OOM(内存溢出)。我见过一台8G内存的Windows笔记本跑了Nacos、MySQL、Redis、Nginx再加两个IDEA,Nacos容器直接被杀。这时候手动把JVM堆压到512m,能显著降低内存压力。

2.3 持久化:容器可以删,数据不能丢

容器是"一次性"的,这句话怎么理解?你跑一个Nacos容器,往里面写了配置,一旦容器被删(比如用了docker rm -f),容器内的数据就全没了。因为你用的是容器可写层,它跟容器生命周期绑定。

如果想升级镜像版本或者迁移节点,必须做数据持久化。做法是挂载数据卷,把容器内的关键目录映射到宿主机:

docker run -d \ --name nacos-server \ -p 8848:8848 \ -p 9848:9848 \ -p 9849:9849 \ -e MODE=standalone \ -e JVM_XMS=512m \ -e JVM_XMX=512m \ -v /Users/yourname/docker/nacos/logs:/home/nacos/logs \ -v /Users/yourname/docker/nacos/conf:/home/nacos/conf \ -v /Users/yourname/docker/nacos/data:/home/nacos/data \ nacos/nacos-server:v2.2.3

三个挂载点分别对应日志、配置、数据。但这里有个坑:Nacos容器内是以nacos用户运行的,宿主机挂载目录如果权限不对,容器启动后写不了日志,会一直报权限错误。简便做法是先创建一个目录并赋予较宽权限,或者用docker volume代替bind mount。

docker volume create nacos-logs docker volume create nacos-conf docker volume create nacos-data

然后用-v nacos-logs:/home/nacos/logs这种形式挂载。数据卷由Docker管理,不指定具体路径,权限问题基本不存在,迁移的时候用docker run --volumes-from也能拷数据。

注意:conf目录挂载要谨慎。官方镜像内的application.properties是启动的关键,你如果用一个空的宿主机目录覆盖了它,Nacos会因为缺配置起不来。正确做法是先把容器跑起来,docker cp出配置文件到宿主机,改完再以挂载方式启动。

3. 数据源切换:从内置Derby到MySQL,再到达梦

3.1 为什么必须换MySQL

Nacos默认使用内置Derby数据库存储配置、用户、命名空间等信息。单机开发无所谓,但你一上生产或者搞集群,Derby就是个大隐患。原因有三点:

一是Derby不适合高并发场景,性能瓶颈明显。二是集群模式下多个Nacos节点如果各自持有一份Derby,数据不一致问题会非常严重,官方说的"内置数据库支持集群"实际上是AP模式下的临时方案,不是在常规部署中推荐的。三是运维不友好,你想用Navicat或者DataGrip去查Nacos的配置表?Derby做起来很别扭。

所以生产环境标配是外置MySQL。Nacos的元数据表结构就在官方代码库里,初始化SQL脚本是mysql-schema.sql

3.2 MySQL 8.0初始化配置实操

假设你已经在Docker里跑了一个MySQL 8.0(具体方法参考之前写过的"docker安装mysql8.0并使用"那篇),下面直接演示怎么让Nacos用它做存储。

先建库和导入表结构。注意MySQL 8.0默认字符集是utf8mb4,但Nacos官方脚本最稳妥的是用utf8mb4utf8mb4_general_ci,别用utf8,否则中文配置可能出现乱码。

CREATE DATABASE nacos_config DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

然后导入Nacos官方提供的mysql-schema.sql。这个脚本可以从GitHub的nacos-docker仓库或者源码包里的distribution/conf/目录获取。如果你上面已经用最简方式跑过Nacos容器,也可以从容器内拷出来:

docker cp nacos-server:/home/nacos/conf/mysql-schema.sql /tmp/mysql-schema.sql

接着用命令行导入:

mysql -h 127.0.0.1 -P 3306 -u root -p nacos_config < /tmp/mysql-schema.sql

导入成功后,你可以执行SHOW TABLES;看看,里面有config_infousersroles这些核心表。

接下来用MySQL数据源启动Nacos:

docker run -d \ --name nacos-server \ -p 8848:8848 \ -p 9848:9848 \ -p 9849:9849 \ -e MODE=standalone \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e MYSQL_SERVICE_HOST=172.17.0.1 \ -e MYSQL_SERVICE_PORT=3306 \ -e MYSQL_SERVICE_DB_NAME=nacos_config \ -e MYSQL_SERVICE_USER=root \ -e MYSQL_SERVICE_PASSWORD=yourpassword \ -e MYSQL_SERVICE_DB_PARAM="characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai" \ nacos/nacos-server:v2.2.3

这里的MYSQL_SERVICE_DB_PARAM很关键。MySQL 8.0默认加密规则是caching_sha2_password,如果不在连接串里加allowPublicKeyRetrieval=true,Nacos连接数据库时会报Public Key Retrieval is not allowed,这个问题不查半天很难定位。同理,serverTimezone不加的话,时间字段会出现时区偏差。

还有一个特别容易忽略的点:MYSQL_SERVICE_HOST=172.17.0.1。这个IP是Docker桥接网络的宿主机网关,也就是从容器内部访问宿主机时用的地址。如果你在容器里写localhost或者127.0.0.1,指向的是容器自己,不是宿主机的MySQL。这是我见过的最常见的连接失败原因。

3.3 Nacos适配达梦数据库的思路

热搜词里出现了好几条关于"nacos适配达梦数据库"的内容,这说明不少国内项目在搞信创适配,数据库要从MySQL换成达梦。Nacos官方默认是不支持达梦的,社区里也没有开箱即用的镜像,但是改造思路是明确的。

大致路线是:把Nacos源码里的数据源层改成兼容达梦的实现,或者用ORM框架的方言桥接。具体说,Nacos的数据层用Spring JDBC + JdbcTemplate,它在启动时会根据SPRING_DATASOURCE_PLATFORM判断使用哪种数据库方言,默认支持mysql、derby等。适配达梦要做三件事,一是准备达梦的JDBC驱动,二是把建表语句从MySQL语法转到达梦语法(主要涉及字段类型、自增主键、索引命名),三是在配置文件里手动指定DataSource的driver-class-name、url、username、password,绕过平台判断。

对于大多数没有源码改造能力的团队,我的建议是:先把Nacos的conf/application.properties完整抄出来,改成达梦的jdbc配置,再用-v挂载进容器覆盖默认配置,同时用自定义镜像把达梦驱动dm-jdbc.jar塞进/home/nacos/plugins或classpath里。启动时如果遇到SQL语法不兼容,再逐条调整建表语句。这个工作不算简单,但比从零开发一个注册中心靠谱得多。

DB2的适配思路和达梦基本一样,核心就是驱动 + 方言 + SQL语法兼容。一句话总结:Nacos换数据库不复杂,复杂的是SQL和方言层,别指望改个连接串就完事。

4. 注册中心和配置中心:微服务集成的真实玩法

4.1 服务注册与发现

Nacos跑起来之后,微服务接入其实很简单。以Spring Cloud Alibaba为例,pom里引入依赖:

<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>

然后在application.yml里配:

spring: application: name: order-service cloud: nacos: server-addr: 127.0.0.1:8848 username: nacos password: nacos

启动服务后,到Nacos控制台的"服务管理 -> 服务列表"里就能看到order-service已经注册上去。点开详情能看到实例IP、端口、健康状态。

这里要提一个细节:spring.cloud.nacos.server-addr填入的地址,如果服务和Nacos在同一台机器,写127.0.0.1没问题;如果跨机器,一定要写宿主机IP,不要写localhost。否则服务注册的是容器内部的IP,别的机器访问不了。

4.2 配置中心的动态刷新

注册中心只是Nacos的一半能力,另一半是配置中心。把配置扔到Nacos上,改配置不用重新发布服务,这真是解放程序员的功能。接入方式和注册中心类似:

<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>

然后建一个bootstrap.yml,把配置中心地址指过去:

spring: application: name: order-service cloud: nacos: config: server-addr: 127.0.0.1:8848 file-extension: yaml group: DEFAULT_GROUP

在Nacos控制台"配置管理 -> 配置列表"里新增一条配置,Data ID取order-service.yaml,Group取DEFAULT_GROUP,格式选YAML。服务启动后会自动加载这条配置。想测动态刷新,在配置类上加@RefreshScope,修改Nacos配置后服务不用重启,注入的配置值就变了。

这里有几个细节,也是热搜词里"nacos配置中心动态刷新"背后藏得最深的坑:

一是Spring Cloud Alibaba 2021.x之后(对应Spring Cloud 2020.0.x),bootstrap.yml默认不再被加载。你需要额外引入spring-cloud-starter-bootstrap依赖,或者改成在application.yml里直接写spring.config.import: nacos:order-service.yaml。热搜里的"no spring.config.import property has been defined nacos"这条,十有八九就是2021.x版本升级后踩的坑。

二是file-extension和Data ID后缀要严格对应。你写yaml,Data ID就一定要以.yaml结尾,而不是.yml。这个不一致不会在启动时报错,但配置死活不生效。

三是配置优先级。Nacos本地的application.ymlbootstrap.yml、远程配置三者之间的覆盖关系容易把人绕晕。我的建议是:项目里只保留必须的本机配置,其余都放Nacos,避免两套配置打架。

4.3 微服务生态联动:Feign、Sentinel、Dubbo、Knife4j

Nacos作为注册中心,接上OpenFeign做服务间调用很自然:消费者通过@FeignClient(name = "order-service")声明调用目标,Feign从Nacos拉取服务实例列表,然后负载均衡调用。这里要确保spring-cloud-starter-loadbalancer在classpath里,否则高版本Spring Cloud会因为找不到负载均衡器报错。

Sentinel和Nacos的联动更实用。限流规则可以持久化到Nacos配置中心,这样Sentinel控制台改规则,推送到Nacos,客户端动态感知。具体做法是引入sentinel-datasource-nacos,然后配置spring.cloud.sentinel.datasource.nacos指向Nacos上的规则配置。这块坑也算多,主要是规则文件的Data ID、group、规则类型(flowdegradeauthority等)必须对应上,一个字母不对就静默失败。

Dubbo 3.x也支持用Nacos做注册中心。配置很简单:

dubbo: registry: address: nacos://127.0.0.1:8848

Knife4j本身和Nacos没有直接关系,但如果你想在网关层聚合多个微服务的API文档,通常需要让网关从Nacos动态发现下游服务,Knife4j配合网关的Swagger聚合插件,就能做到"接入一个新服务,文档自动出现在网关"。很多团队在微服务接口管理上就是这么玩的。这个链路的复杂度不在于每个组件本身,而在于你理解它们各自的角色:Nacos管服务发现和配置,Sentinel管保护,Feign管调用,Knife4j管文档呈现。

5. 高频报错与排查技巧实录

5.1 401 Unauthorized:账户密码能登录但服务注册失败

搜热词里有一条"nacos 账户密码能登录但是 服务注册失败401",这个问题在Nacos 2.2.3开启鉴权后非常典型。

现象是:浏览器打开控制台,用nacos/nacos能正常登录;但是微服务启动时报http code: 401, message: unauthorized

原因几乎都是:客户端没有正确携带认证信息。你在application.yml里配了usernamepassword,但实际生效的可能是老版本客户端或者spring.cloud.nacos.discovery.username写错位置。另一个常见情况是Nacos 2.2.3需要显式设置NACOS_AUTH_TOKEN,如果使用默认token,部分客户端因为服务端签发token过期时间问题导致401。

我的排查顺序:先看客户端版本和Nacos服务端版本是否匹配,再看配置项是否写在discoveryconfig两个子节点下,最后看Nacos服务端日志里有没有token expired相关记录。如果服务端日志提到默认token问题,就在启动参数加:

-e NACOS_AUTH_ENABLE=true \ -e NACOS_AUTH_TOKEN=SecretKey012345678901234567890123456789012345678901234567890123456789 \

这个token字符串需要满足官方要求,长度至少32字节,最好用官方文档生成随机数的方式生成。

5.2 no spring.config.import property has been defined

这个报错出现在Spring Cloud Alibaba 2021.x及之后版本,表现是应用启动直接失败,提示:

The spring.config.import property is missing a nacos: entry Action: Add a spring.config.import=nacos: property to your configuration.

根本原因前面讲过:从2021.0.1.0版本开始,Spring Cloud移除了对bootstrap.yml的默认支持,Nacos Config的配置必须显式导入。

两种解法:

方案A:引入spring-cloud-starter-bootstrap依赖,继续使用bootstrap.yml,这符合老项目的习惯。 方案B:迁移到application.yml,增加:

spring: config: import: nacos:order-service.yaml

两选一就行。如果两种都做,容易出现配置被加载两次的奇怪现象。迁移时要注意原来放在bootstrap.yml里的Nacos相关配置,也要挪到application.yml里,否则spring.config.import找不到服务端地址。

5.3 容器秒退、内存溢出、端口占用

容器启动后几秒就退出,docker ps -a看到状态是Exited,这是最常见的一类问题。排查方法只有一个:看日志。

docker logs nacos-server

如果日志最后几行出现Caused by: java.lang.OutOfMemoryError: Java heap space,那就是JVM内存不够。通过-e JVM_XMS=256m -e JVM_XMX=256m压低堆内存,或者给Docker Desktop调大内存配额(Settings -> Resources -> Memory)。开发机一般建议128G以内的话给Docker分4-6G。

如果日志提示端口被占用,比如BindException: Address already in use,那大概率是你之前手动装过一次Nacos,8848端口被占。Windows可以用netstat -ano | findstr 8848查端口占用,然后taskkill /PID xxx /F杀掉,或者把Docker端口映射的左边改成8849。

还有一种容器秒退是权限问题,日志里会报AccessDeniedException,这是挂载目录的锅,解决办法前面已经说过,用docker volume替代bind mount最简单。

5.4 Nacos环境变量速查表

我把常用的环境变量整理成了一张表,打印出来贴工位上,遇到配置问题先查表,比翻官方文档快多了:

环境变量作用示例值
MODE启动模式standalone/cluster
SPRING_DATASOURCE_PLATFORM数据源类型mysql/derby
MYSQL_SERVICE_HOSTMySQL地址172.17.0.1
MYSQL_SERVICE_PORTMySQL端口3306
MYSQL_SERVICE_DB_NAME数据库名nacos_config
MYSQL_SERVICE_USER数据库用户root
MYSQL_SERVICE_PASSWORD数据库密码yourpassword
MYSQL_SERVICE_DB_PARAMJDBC连接参数见上文
JVM_XMSJVM初始堆内存512m
JVM_XMXJVM最大堆内存512m
NACOS_AUTH_ENABLE是否开启鉴权true
NACOS_AUTH_TOKEN鉴权Token自定义长字符串

5.5 配置动态刷新不生效的排查

最后单独说一个高发问题:Nacos配置修改了,控制台显示已发布,但服务里的值纹丝不动。

排查步骤:

  1. 确认配置类加了@RefreshScope。没有这个注解,配置只在启动时加载一次。
  2. 确认Data ID和spring.config.importbootstrap.yml里的配置能对上。比如你定义的是order-service.yaml,但Nacos控制台建的是order-service.yml,就会静默失败。
  3. 确认@Value注解写在@RefreshScope类的字段上,且字段是private String xxx这种普通类型,用了复杂类型的注意刷新时的对象引用问题。
  4. 看Nacos服务端日志,如果客户端和server的gRPC长连接断了,配置推送根本不到客户端。这种情况检查9848/9849端口通不通。

这第四条是很多人忽略的:Nacos 2.x配置推送走gRPC,开防火墙或者云安全组的时候只放行了8848,没放行9848,导致控制台能连,但配置永远推不进来。

6. 避坑清单与我的实操体会

6.1 环境变量、端口、数据卷:三件套检查法

最后总结一个我自己的检查套路,每次Nacos部署出问题,按这个顺序过一遍,90%的坑都能填平:

先看端口映射三件套,8848、9848、9849是否都映射了,少一个后患无穷。再看环境变量,MODE是不是standalone,数据源连接串参数齐不齐。最后看数据卷,挂载目录权限对不对,是不是空目录覆盖了容器内的conf

遇到诡异问题不要瞎猜,第一步永远是docker logs --tail 100 <容器名>,日志会告诉你答案。这条经验适用于所有Docker化部署的中间件,不止Nacos。

6.2 我的几个独门习惯

基于长时间使用,分享几个我自己固定的习惯,供参考:

第一,永远指定镜像版本tag,不写latest。这是所有Docker部署的第一原则。

第二,单机开发环境我会把Nacos容器加--restart=always,机器重启后容器自动拉起,省得每次打开电脑还要手动start,命令是:

docker update --restart=always nacos-server

第三,配置管理的命名空间规划要趁早。团队一多,都在public命名空间里写配置,那个乱啊。建议一上来就按环境建命名空间:devtestprod,服务启动时通过spring.cloud.nacos.config.namespace指定。改名容易,迁移数据难。

第四,生产环境Nacos集群部署时,如果条件允许,把NACOS_AUTH_TOKEN放到配置中心或密钥管理服务里去管理,不要直接写死在docker run命令行中,否则ps就能看到密钥,这是个安全隐患。

6.3 下一步还能怎么玩

Nacos装好只是起点,后面能做的事还很多:比如用Prometheus + Grafana监控Nacos的运行指标,用Docker Compose把Nacos、MySQL、微服务一键编排起来,甚至用K8s部署Nacos集群。但不管走哪条路,把Docker安装Nacos这一套基础打扎实了,后面都是水到渠成的事。

有任何装不上的、起不来的、注册不了的问题,欢迎在评论区带上你的docker logs来聊,我看到都会回。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询