【docker部署nacos并实现数据持久化《二》】

docker部署nacos并实现数据持久化《二》

1. 官网下载与docker中对应版本的windows版nacos

  • 官网连接
  • 查看自己安装的nacos镜像版本
  • docker logs -f --tail 500 nacos
  • 两者版本必须保持一致,不然使用nacos做配置中心时,创建配置文件会报错:
  • “【Nacos2.1】发布失败。请检查参数是否正确”这个错就是持久化数据库与nacos容器版本不一致导致的。
    在这里插入图片描述

2.下载之后解压

在这里插入图片描述

3. 创建MySQL数据库nacos_db

  • 创建mysql数据库,数据库名称为nacos_db,导入nacos-mysql.sql文件,初始化数据
    在这里插入图片描述
  • users数据库中已经初始化了一个用户:nacos,密码:nacos
    在这里插入图片描述

4. 修改application.properties文件

  • cd /opt/nacos/conf 进入nacos配置文件目录
  • vim application.properties 编辑配置文件
  • 输入i进入编辑模式
  • 在文件末尾加上数据源配置,保存并退出

#### db config
spring.datasource.platform=mysql
 
db.num=1
db.url.0=jdbc:mysql://192.168.124.111:3306/nacos_db?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=XXXX
db.password=123456

在这里插入图片描述

  • 保存并退出:按Esc键,Shift键+:,输入wq, 按Enter键退出
  • 重启nacos容器 docker restart nacos

5. 浏览器访问:http://192.168.124.111:8848/nacos

  • 默认账号密码nacos , nacos
    在这里插入图片描述

6. 创建用户

在这里插入图片描述

  • 此时数据库中已经保存了一个用户
    在这里插入图片描述
  • nacos数据持久化已经实现了,以后重启后配置文件,用户信息都是保存在数据库中的,所以不会丢失。如果没有持久化nacos数据库,修改了配置文件,重启nacos后,nacos中的以前配置的所有配置文件包括创建的用户,权限等都会丢失。
### 如何在 Docker 中安装 Nacos 实现数据持久化 #### 准备工作 为了完成 NacosDocker 安装以及数据持久化的配置,首先需要确保本地已经安装了 Docker 和 MySQL 数据库。如果尚未安装 MySQL,则可以通过 Docker 来快速部署 MySQL 实例。 #### 步骤说明 ##### 1. 拉取 Nacos 镜像 通过以下命令可以从官方镜像仓库中获取最新的 Nacos 镜像: ```bash docker pull nacos/nacos-server ``` 此操作会下载最新版本的 Nacos Server 到本地环境[^4]。 ##### 2. 启动 MySQL 容器 由于 Nacos 支持将配置和服务信息存储到外部数据库(如 MySQL),因此需要先创建一个 MySQL 容器实例作为其后端支持。以下是启动 MySQL 容器的具体命令: ```bash docker run --name mysql-nacos -e MYSQL_ROOT_PASSWORD=your_password -d mysql:8.0 ``` 上述命令中的 `MYSQL_ROOT_PASSWORD` 参数用于设置 root 用户密码,请替换为实际使用的安全密码[^3]。 ##### 3. 初始化 Nacos 所需表结构 进入刚刚创建好的 MySQL 容器内部执行 SQL 脚本初始化必要的表格架构。这些脚本通常可以在 Nacos GitHub 项目的 releases 页面找到或者直接从文档链接地址下载下来。 假设已准备好 sql 文件路径 `/path/to/init.sql` ,则可通过如下方式导入: ```bash docker exec -i mysql-nacos mysql -uroot -p'your_password' < /path/to/init.sql ``` ##### 4. 运行带有持久化选项的 Nacos 容器 当确认 MySQL 已经正常运行且完成了初始建模之后,就可以按照下面的方式去启动带持久化Nacos 应用了: 单机模式下可采用以下指令来指定连接参数: ```bash docker run --name nacos-single \ -e MODE="standalone" \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e MYSQL_SERVICE_HOST=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql-nacos) \ -e MYSQL_SERVICE_PORT=3306 \ -e MYSQL_SERVICE_USER=root \ -e MYSQL_SERVICE_PASSWORD='your_password' \ -p 8848:8848 \ -d nacos/nacos-server ``` 这里需要注意的是,`$(...)` 表达式的目的是动态解析出之前建立的那个名为 `mysql-nacos` 的 IP 地址;另外几个变量分别对应着访问 Mysql 数据源所需的认证详情等内容[^2]。 多节点集群场景下的具体做法可能会有所区别,但核心思路依然是围绕调整相应的环境变量来进行适配处理即可。 --- #### 总结 综上所述,在 Docker 环境里边搭建起具备数据持久能力的 Nacos 很容易做到。只需要遵循标准流程依次完成镜像拉取、依赖服务准备(比如这里的 Mysql),最后再合理设定好各种关联性的配置项就能顺利达成目标[^1]^。 ```python print("Nacos with persistence configured successfully!") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值