Docker 摆设 Nacos(单机),使用 MySQL 数据库存储配置信息 ...

打印 上一主题 下一主题

主题 811|帖子 811|积分 2433

前面的话

   默认你已经懂 Docker、docker-compose
Nacos版本:v2.2.3
MySQL 版本:8.2.0
  一、下载


  • 打开 Nacos 官网
   官网地址:官网
  


  • 点击手册
  • 左侧 Nacos Docker

  • 克隆项目到当地
  1. # 克隆项目,如果提示连接不到 github 请自行解决
  2. git clone https://github.com/nacos-group/nacos-docker.git
  3. # 进入项目目录
  4. cd nacos-docker
复制代码

   留意:
如果这里你git clone 报错:fatal: unable to access*** github Failure when receiving data from
请参考我这篇文章配置代理(前提是你有高科技,否则自行到github仓库下载源码大概使用第三方github加速服务):
点击跳转
  

  • 可以看到项目已经下载到当地


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

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

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

  

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

  • 手动创建数据库(我使用 Navicat16 操作)
   排序规则我不选,让它默认就好了
  


  • 实行官方给的 sql 文件


  • 放入到 Navicat 中实行

  • 可以看到创建好的数据表

三、修改项目配置

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

  • 修改 example/standalone-mysql-8.yaml 文件
   去掉 MySQL 部分的配置,由于我们不需要docker再帮我摆设 MySQL 数据库了
  

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

  • 修改 env/nacos-standlone-mysql.env 文件

代码:
  1. PREFER_HOST_MODE=hostname
  2. MODE=standalone # 单机模式
  3. SPRING_DATASOURCE_PLATFORM=mysql # 使用 MySQL 作为存储
  4. MYSQL_SERVICE_HOST=127.0.0.1 # 本机的话直接使用这个或者 localhost,刚刚设置的 host 网络模式可以直接访问到宿主机
  5. MYSQL_SERVICE_DB_NAME=nacos_config # 存储 Nacos 配置信息的数据库名称
  6. MYSQL_SERVICE_PORT=3306 # 数据库访问端口
  7. MYSQL_SERVICE_USER=root # 访问你数据库的用户,默认用 root 即可,你设置有别的用户也可以
  8. MYSQL_SERVICE_PASSWORD=root # root 密码
  9. # 下面这行可以跟着我写,保险起见,加上时区,官方给的只有 UTC 时区在 .properties 中
  10. MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
复制代码
如果你需要开启鉴权,则继续追加以下配置在上面的内容之后
   开启之后登录 nacos 需要账号密码:默认都是 nacos
  1. # 开启鉴权
  2. NACOS_AUTH_IDENTITY_KEY=2222
  3. NACOS_AUTH_IDENTITY_VALUE=2222
  4. NACOS_AUTH_TOKEN=SecretKey012345678901234567890123456789012345678901234567890123456789
  5. NACOS_AUTH_SYSTEM_TYPE=nacos
  6. NACOS_AUTH_ENABLE=true
复制代码

  • 修改 mysql.env 文件

代码:
  1. MYSQL_ROOT_PASSWORD=root
  2. MYSQL_DATABASE=nacos_config
  3. MYSQL_USER=root
  4. MYSQL_PASSWORD=root
  5. LANG=C.UTF-8
复制代码

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

修改后:

  1. 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
  2. db.user.0=root
  3. db.password.0=root
复制代码

  • 以上修改之后就完成了
四、构建镜像&运行容器

   以下是在项目根目录下实行下令
  

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

检察容器:

   这里我使用的不是 DockerDesktop,所以界面是不一样的。我这个是 OrbStack,相对于 DockerDesktop 比力节约资源也更加快。除了界面没那么美观,端口映射没DockerDesktop 那么直观,其它还好。
有想相识的小同伴可以去官网看看:https://orbstack.dev/ 大概点击 官网链接 跳转
  

  • 留意:OrbStack 暂时不支持 Windows 平台
  欣赏器访问地址:http://localhost:8848/nacos
或直接点击跳转地址

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


检察数据库:

五、完成

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

大连密封材料

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表