一、前言

最近部署 Nacos 2.1.0 踩了超多坑:Docker 拉取镜像超时、Nacos 启动报 No DataSource set、本地 Nacos 连不上 Docker 里的 MySQL、默认集群模式启动卡死等问题。

本文整理两套可直接落地的部署方案

  1. 优先使用 Docker 容器部署 Nacos
  2. Docker 拉取镜像超时 / 失败时,用 Linux 本地解压部署兜底

全程适配 Docker 运行的 MySQL,所有命令复制即用,新手也能一次部署成功。

简洁流程(省流)

前置必做

  1. 启动 Docker 中的 MySQL 容器;
  2. 在 MySQL 中创建 nacos 库,并导入 Nacos 自带 nacos-mysql.sql 表结构。

方案一:Docker 部署 Nacos(优先推荐)

  1. 国内镜像源拉取 nacos/nacos-server:v2.1.0
  2. 编写 custom.env 配置单机模式 + Docker MySQL 连接信息;
  3. 挂载配置、映射 8848/9848/9849 端口,执行 docker run 启动;
  4. 查看日志,浏览器访问 Nacos 控制台。

方案二:Docker 拉取超时兜底(本地解压版)

  1. 下载 Nacos 2.1.0,解压到 /usr/local/nacos
  2. 修改 application.properties,数据库地址填宿主机 IP:3306,指向 Docker MySQL;
  3. 执行 startup.sh -m standalone 单机启动;
  4. 放行防火墙 8848 端口,直接浏览器访问使用。

【下载地址】Nacos2.1.0安装包下载https://gitcode.com/open-source-toolkit/55608

二、环境准备

  • 服务器:CentOS 7
  • 容器环境:Docker 已安装并配置国内镜像加速器
  • 数据库:MySQL 运行在 Docker 容器中,映射端口 3306,账号 xxx,密码 xxx
  • Nacos 版本:2.1.0
  • 服务器内网 IP:192.168.100.xxx

三、前置:准备 Docker MySQL

1. 查看并启动 MySQL 容器

# 查看所有容器,找到mysql
docker ps -a | grep mysql

# 启动mysql容器(替换为你的容器名/ID)
docker start mysql

2. 创建 Nacos 数据库 + 导入官方表结构

90% 启动失败都是没建库、没导表导致 No DataSource set

# 1. 创建nacos数据库
docker exec -it mysql mysql -uroot -p123 -e "CREATE DATABASE IF NOT EXISTS nacos CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"

# 2. 后续本地部署会用到,提前把nacos建库导表准备好

四、方案一:Docker 部署 Nacos 2.1.0(推荐)

1. 解决 Docker 拉取镜像超时

已配置国内镜像加速器(中科大、网易、清华源),若仍超时,手动拉取国内镜像:

bash

运行

# 拉取中科大同步镜像
docker pull docker.mirrors.ustc.edu.cn/nacos/nacos-server:v2.1.0
# 重命名标签,兼容原生命令
docker tag docker.mirrors.ustc.edu.cn/nacos/nacos-server:v2.1.0 nacos/nacos-server:v2.1.0

2. 编写 nacos 环境配置文件

新建目录并创建 custom.env

bash

运行

mkdir -p /root/nacos
vim /root/nacos/custom.env

写入配置:

env

# 单机模式
MODE=standalone
# 数据库配置
SPRING_DATASOURCE_PLATFORM=mysql
MYSQL_SERVICE_HOST=192.168.100.128
MYSQL_SERVICE_PORT=3306
MYSQL_SERVICE_DB_NAME=nacos
MYSQL_SERVICE_USER=root
MYSQL_SERVICE_PASSWORD=123
MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
# 安全认证配置(高版本Nacos必备)
NACOS_AUTH_IDENTITY_KEY=nacos
NACOS_AUTH_IDENTITY_VALUE=nacos
NACOS_AUTH_TOKEN=SecretKey012345678901234567890123456789012345678901234567890123456789

3. 启动 Nacos 容器

docker run -d \
--name nacos \
--env-file /root/nacos/custom.env \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
--restart=always \
nacos/nacos-server:v2.1.0

4. 查看启动日志

docker logs -f nacos

出现以下日志代表启动成功:Nacos started successfully in stand alone mode.


五、方案二:本地解压部署 Nacos(Docker 拉取失败兜底)

1. 下载并解压 Nacos 安装包

下载 Nacos 2.1.0 安装包,解压到 Linux 标准软件目录 /usr/local

# 解压命令
tar -zxvf nacos-server-2.1.0.tar.gz -C /usr/local/

最终路径:/usr/local/nacos

2. 修改数据库配置(核心避坑)

重点:本地 Nacos 不能用 127.0.0.1 连 Docker MySQL,必须用服务器内网 IP

cat > /usr/local/nacos/conf/application.properties <<EOF
server.port=8848
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.100.128:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
db.user=root
db.password=123
EOF

3. 单机模式启动 Nacos

# 进入启动脚本目录
cd /usr/local/nacos/bin

# 单机模式启动(必加 -m standalone,否则集群模式启动失败)
sh startup.sh -m standalone

4. 查看启动日志

tail -f /usr/local/nacos/logs/start.out

5. Nacos 日常启停

# 停止
cd /usr/local/nacos/bin
sh shutdown.sh

# 重启
sh startup.sh -m standalone

六、访问 Nacos 控制台

浏览器输入地址:

http://192.168.100.128:8848/nacos

默认账号密码:

  • 用户名:nacos
  • 密码:nacos

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐