Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息

前面的话

默认你已经懂 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张图片

  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. 以上修改之后就完成了

四、构建镜像&运行容器

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

在这里插入图片描述

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

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

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

或直接点击跳转地址

Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息_第17张图片
我们再新建一个命名空间测试

Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息_第18张图片
Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息_第19张图片

查看数据库:

Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息_第20张图片

五、完成

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

你可能感兴趣的:(Docker,中间件,数据库,docker,mysql,nacos)