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

news/2024/7/7 19:46:21

前面的话

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

一、下载

  1. 打开 Nacos 官网

官网地址:官网

在这里插入图片描述

  1. 点击手册

  2. 左侧 Nacos Docker
    在这里插入图片描述

  3. 克隆项目到本地

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

# 进入项目目录
cd nacos-docker

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

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

  1. 找到官方的 MySQL 表结构文件(直接看图)
    在这里插入图片描述

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

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

在这里插入图片描述

  1. 执行官方给的 sql 文件

在这里插入图片描述

  1. 放入到 Navicat 中执行
    在这里插入图片描述

  2. 可以看到创建好的数据表
    在这里插入图片描述

三、修改项目配置

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

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

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

在这里插入图片描述

代码,可直接拷贝

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 文件

在这里插入图片描述

代码:


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 文件

在这里插入图片描述

代码:

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 这个文件的配置),保险起见还是修改一下

在这里插入图片描述

修改后:

在这里插入图片描述

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 容器。如果帮助到你们别忘了点赞哦~


http://lihuaxi.xjx100.cn/news/1832966.html

相关文章

国标交流充电桩接口和直流充电桩接口介绍

1、背景 与传统油车相比,纯电车有太多的优势,但是纯电需要考虑充电时间的长短以及电池的使用寿命。然而相比较而言,混动有好多的备选方案比如插电式、增程式等,除了满足比电车较远的续航外,充电等待时间大大缩短。 在…

常用的git命令完整详细109条

Git是一个很强大的分布式版本控制系统,以下是一些常用的git命令: git init:在当前目录下创建一个新的Git仓库。git add 文件名:将指定的文件添加到暂存区,准备提交。git commit -m “备注”:提交暂存区的文…

电源控制系统架构(PCSA)之电源模式

6.3 电源模式 电源模式包括电源域的逻辑和RAM电源状态的组合以及相关的时钟、复位和隔离控制。 PCSA定义了一系列的电源模式,如表6.1所示。 PCSA还定义了与这些功率模式相关的P-Channel PSTATE和PACTIVE位值。这些列在表6.2中。

带你用uniapp从零开发一个仿小米商场_3.animate.css动画库在uniapp中的使用

这篇文章仅做简单介绍animate.css动画库在uniapp中如何使用 animate.css动画库引入 怕有人没看专栏前面的文章,所以这里重新介绍一边animate.css动画库的引入,知道的可以跳过 可以在这里下载 animate.css动画库官网http://www.animate.net.cn/ 下载好animate.css后在项目根…

所里网连不上,我服了

所里网连不上,我服了所里网连不上,我服了所里网连不上,我服了

Co-DETR:DETRs与协同混合分配训练论文学习笔记

论文地址:https://arxiv.org/pdf/2211.12860.pdf 代码地址: GitHub - Sense-X/Co-DETR: [ICCV 2023] DETRs with Collaborative Hybrid Assignments Training 摘要 作者提出了一种新的协同混合任务训练方案,即Co-DETR,以从多种标…

从零开始搭建博客网站-----源代码试部署

拿到了该项目的源码,先尝试是否可以成功部署,详细的部署视频地址 后端项目部署 先把maven配置好,都改成自己下载的maven地址 文件编码改成utf-8,防止配置文件乱码 如果maven是刚下的,要改一下下载包的地址&#xff0…

Kotlin学习——kt里面的函数,高阶函数 函数式编程 扩展函数和属性

Kotlin 是一门现代但已成熟的编程语言,旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作,并提供了多种方式在多个平台间复用代码,以实现高效编程。 https://play.kotlinlang.org/byExample/01_introduction/02_Functio…