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

前面的话

默认你已经懂 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.envvolumes:- ./standalone-logs/:/home/nacos/logs # 这里看你需求修改成你自己的目录映射,这里我演示,不改ports:- "8848:8848"- "9848:9848"restart: alwaysnetwork_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_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. 以上修改之后就完成了

四、构建镜像

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

在这里插入图片描述

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://www.hqwc.cn/news/218020.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4-20mA高精度采集方案

下载链接!https://mp.weixin.qq.com/s?__bizMzU2OTc4ODA4OA&mid2247557466&idx1&snb5a323285c2629a41d2a896764db27eb&chksmfcfaf28dcb8d7b9bb6211030d9bda53db63ab51f765b4165d9fa630e54301f0406efdabff0fb&token976581939&langzh_CN#rd …

SAP smartform 实现打印条形码

先在SE73里定义一个新的BARCODE,注意一定要用新的才可以,旧的是打印不出来的。 然后定义一个SMARTFORM的样式,把你定义的BARCODE放到字符样式里面去。 再做SMARTFORM就可以了,将需要作为条码的变量的格式选为该BARCODE格式&…

解决hbuilder使用android studio模拟器不能热更新

hbuilder使用android studio模拟器编,在编写代码时,不能热更新,总是需要重启虚拟机中的程序,hbuilderx的版本是3.1.22,android studio的版本是4.2.2 同时在hbuilderx中出现如下报错信息: 报错信息&#x…

位图和布隆过滤器

目录 一. 位图 1.题目: 给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中? 2.解析题目: 3.位图 4.代码以及测试 5.其他题目 二.布隆过滤器 1.介绍 2.实现 …

持续增长的背后,艾比森用泛微-千里聆RPA机器人为业务加速

(艾比森全球总部) 艾比森集团始创于2001年,是全球知名的至真LED显示应用与服务提供商。目前旗下设有深圳总部,艾比森东江智造中心,以及艾比森美国、德国、日本、迪拜、俄罗斯、墨西哥、巴西、中国香港等18家海内外公司…

安卓用SQLite数据库存储数据

什么是SQLite? SQLite是安卓中的轻量级内置数据库,不需要设置用户名和密码就可以使用。资源占用较少,运算速度也比较快。 SQLite支持:null(空)、integer(整形)、real(小…

PTA NeuDs_数据库题目

二.单选题 1.数据库应用程序的编写是基于数据库三级模式中的。 A.模式 B.外模式 C.内模式 D.逻辑模式 用户应用程序根据外模式进行数据操作,通过外模式一模式映射,定义和建立某个外模式与模式间的对应关系 2.对创建数据库模式一类的数据库对象的授权…

计算机毕业设计 基于SpringBoot的物业管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

【Docker】Docker与Kubernetes:区别与优势对比

前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。   kubernetes,简称K8s&a…

ASP产品通过网络安全专用产品安全认证

什么是网络安全专用产品安全检测? 网络安全专用产品安全检测是指对网络关键设备和网络安全专用产品进行安全性评估和检测,以确保其符合相关标准和法规的要求,能够有效地抵御网络攻击和威胁。该检测由具备资格的机构进行,采用认证…

【matlab程序】matlab给风速添加图例大小

【matlab程序】matlab给风速添加图例大小 clear;clc;close all; % load 加载风速数据。 load(matlab.mat) % 加载颜色包信息 gray load(D:\matlab_work\函数名为colormore的颜色索引表制作\R_color_txt\R_color_single\gray89.txt); brown load(D:\matlab_work\函数名为color…

elementPlus之home页面布局

可以根据自己喜欢的格式选择 现在 header 部分 Aside 部分 Main部分 加上背景色以及命名 <template><div class="common-layout"><el-container><el-header class="homeHeader"><div class="headerTitle">Dev…