Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息
作者:mmseoamin日期:2023-12-25

前面的话

默认你已经懂 Docker、docker-compose

Nacos版本:v2.2.3

MySQL 版本:8.2.0

一、下载

  1. 打开 Nacos 官网

官网地址:官网

Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息,在这里插入图片描述,第1张

  1. 点击手册

  2. 左侧 Nacos Docker

    Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息,在这里插入图片描述,第2张

  3. 克隆项目到本地

# 克隆项目,如果提示连接不到 github 请自行解决
git clone https://github.com/nacos-group/nacos-docker.git
# 进入项目目录
cd nacos-docker

Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息,在这里插入图片描述,第3张

注意:

如果这里你git clone 报错:fatal: unable to access*** github Failure when receiving data from

请参考我这篇文章配置代理(前提是你有高科技,否则自行到github仓库下载源码或者使用第三方github加速服务):

点击跳转

  1. 可以看到项目已经下载到本地

Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息,在这里插入图片描述,第4张

  1. 使用 IDE打开项目,方便编辑(这里我使用 IDEA 打开)

Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息,在这里插入图片描述,第5张

二、创建数据库(以 MySQL8 为例)

因为我本地已经有数据库了,不打算使用 nacos-docker项目帮我用 Docker 创建数据库,所以我需要修改一下它的 docker-compose.yaml文件,也需要手动在我本地创建存储 nacos 数据的数据库。

Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息,在这里插入图片描述,第6张

  1. 找到官方的 MySQL 表结构文件(直接看图)

    Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息,在这里插入图片描述,第7张

  2. 手动创建数据库(我使用 Navicat16 操作)

排序规则我不选,让它默认就好了

Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息,在这里插入图片描述,第8张

  1. 执行官方给的 sql 文件

Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息,在这里插入图片描述,第9张

  1. 放入到 Navicat 中执行

    Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息,在这里插入图片描述,第10张

  2. 可以看到创建好的数据表

    Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息,在这里插入图片描述,第11张

三、修改项目配置

本人本地配置,所以只配置单机模式,集群模式请自行配置多个并修改相关的模式

  1. 修改 example/standalone-mysql-8.yaml 文件

去掉 MySQL 部分的配置,因为我们不需要docker再帮我部署 MySQL 数据库了

Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息,在这里插入图片描述,第12张

代码,可直接拷贝

version: "3.8"
services:
  nacos:
    image: nacos/nacos-server:${NACOS_VERSION}
    container_name: nacos-standalone-mysql # 这里写你想要的容器名称
    env_file:
      - ../env/nacos-standlone-mysql.env
    volumes:
      - ./standalone-logs/:/home/nacos/logs # 这里看你需求修改成你自己的目录映射,这里我演示,不改
    ports:
      - "8848:8848"
      - "9848:9848"
    restart: always
    network_mode: host # 加上这一行,使用 host 模式,这样子容器内部直接访问 localhost 就是宿主机本身,方便一些,反正端口不冲突
  1. 修改 env/nacos-standlone-mysql.env 文件

Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息,在这里插入图片描述,第13张

代码:

PREFER_HOST_MODE=hostname
MODE=standalone # 单机模式
SPRING_DATASOURCE_PLATFORM=mysql # 使用 MySQL 作为存储
MYSQL_SERVICE_HOST=127.0.0.1 # 本机的话直接使用这个或者 localhost,刚刚设置的 host 网络模式可以直接访问到宿主机
MYSQL_SERVICE_DB_NAME=nacos_config # 存储 Nacos 配置信息的数据库名称
MYSQL_SERVICE_PORT=3306 # 数据库访问端口
MYSQL_SERVICE_USER=root # 访问你数据库的用户,默认用 root 即可,你设置有别的用户也可以
MYSQL_SERVICE_PASSWORD=root # root 密码
# 下面这行可以跟着我写,保险起见,加上时区,官方给的只有 UTC 时区在 .properties 中
MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
  1. 修改 mysql.env 文件

Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息,在这里插入图片描述,第14张

代码:

MYSQL_ROOT_PASSWORD=root
MYSQL_DATABASE=nacos_config
MYSQL_USER=root
MYSQL_PASSWORD=root
LANG=C.UTF-8
  1. 修改 example/init.d/application.properties

我没仔细看这个文件是否有被加载(直觉是没加载这个文件的,使用的是build/conf/application.properties 这个文件的配置,这个文件都是引用外部定义好的变量,不需要手动修改),保险起见还是修改一下

Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息,在这里插入图片描述,第15张

修改后:

Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息,在这里插入图片描述,第16张

db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
db.user.0=root
db.password.0=root
  1. 以上修改之后就完成了

四、构建镜像&运行容器

以下是在项目根目录下执行命令

Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息,在这里插入图片描述,第17张

# 执行以下命令,会以standalone-mysql-8.yaml中定义的容器信息进行创建并运行容器
docker-compose -f example/standalone-mysql-8.yaml up # 为了方便看控制台,我们用这个演示
# 或者
docker-compose -f example/standalone-mysql-8.yaml up -d # 后台启动

执行命令后,容器部署成功:

Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息,在这里插入图片描述,第18张

查看容器:

Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息,在这里插入图片描述,第19张

这里我使用的不是 DockerDesktop,所以界面是不一样的。我这个是 OrbStack,相对于 DockerDesktop 比较节约资源也更加快。除了界面没那么美观,端口映射没DockerDesktop 那么直观,其它还好。

有想了解的小伙伴可以去官网看看:https://orbstack.dev/ 或者点击 官网链接 跳转

  • 注意:OrbStack 暂时不支持 Windows 平台

浏览器访问地址:http://localhost:8848/nacos

或直接点击跳转地址

Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息,在这里插入图片描述,第20张

我们再新建一个命名空间测试

Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息,在这里插入图片描述,第21张

Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息,在这里插入图片描述,第22张

查看数据库:

Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息,在这里插入图片描述,第23张

五、完成

至此,我们就完成了使用 Docker 部署 Nacos 容器。如果帮助到你们别忘了点赞哦~