【避坑】Nacos 2.1.0 两种部署方案(Docker 部署 + 本地解压部署)
一、前言
最近部署 Nacos 2.1.0 踩了超多坑:Docker 拉取镜像超时、Nacos 启动报No DataSource set、本地 Nacos 连不上 Docker 里的 MySQL、默认集群模式启动卡死等问题。
本文整理两套可直接落地的部署方案:
- 优先使用Docker 容器部署 Nacos
- Docker 拉取镜像超时 / 失败时,用Linux 本地解压部署兜底
全程适配Docker 运行的 MySQL,所有命令复制即用,新手也能一次部署成功。
简洁流程(省流)
前置必做
- 启动 Docker 中的 MySQL 容器;
- 在 MySQL 中创建
nacos库,并导入 Nacos 自带nacos-mysql.sql表结构。方案一:Docker 部署 Nacos(优先推荐)
- 国内镜像源拉取
nacos/nacos-server:v2.1.0;- 编写
custom.env配置单机模式 + Docker MySQL 连接信息;- 挂载配置、映射 8848/9848/9849 端口,执行
docker run启动;- 查看日志,浏览器访问 Nacos 控制台。
方案二:Docker 拉取超时兜底(本地解压版)
- 下载 Nacos 2.1.0,解压到
/usr/local/nacos;- 修改
application.properties,数据库地址填宿主机 IP:3306,指向 Docker MySQL;- 执行
startup.sh -m standalone单机启动;- 放行防火墙 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 mysql2. 创建 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.02. 编写 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=SecretKey0123456789012345678901234567890123456789012345678901234567893. 启动 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.04. 查看启动日志
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 EOF3. 单机模式启动 Nacos
# 进入启动脚本目录 cd /usr/local/nacos/bin # 单机模式启动(必加 -m standalone,否则集群模式启动失败) sh startup.sh -m standalone4. 查看启动日志
tail -f /usr/local/nacos/logs/start.out5. Nacos 日常启停
# 停止 cd /usr/local/nacos/bin sh shutdown.sh # 重启 sh startup.sh -m standalone六、访问 Nacos 控制台
浏览器输入地址:
http://192.168.100.128:8848/nacos默认账号密码:
- 用户名:
nacos - 密码:
nacos
