用户名
Email
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
帖子
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
数据库
›
Postrge-SQL技术社区
›
Docker 摆设 Nacos(单机),使用 MySQL 数据库存储配置 ...
Docker 摆设 Nacos(单机),使用 MySQL 数据库存储配置信息 ...
大连密封材料
论坛元老
|
2024-8-21 04:05:17
|
显示全部楼层
|
阅读模式
楼主
主题
1739
|
帖子
1739
|
积分
5217
前面的话
默认你已经懂 Docker、docker-compose
Nacos版本:v2.2.3
MySQL 版本:8.2.0
一、下载
打开 Nacos 官网
官网地址:官网
点击手册
左侧 Nacos Docker
克隆项目到当地
# 克隆项目,如果提示连接不到 github 请自行解决
git clone https://github.com/nacos-group/nacos-docker.git
# 进入项目目录
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 数据库了
代码,可直接拷贝
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 就是宿主机本身,方便一些,反正端口不冲突
复制代码
修改 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
复制代码
如果你需要开启鉴权,则继续追加以下配置在上面的内容之后
开启之后登录 nacos 需要账号密码:默认都是 nacos
# 开启鉴权
NACOS_AUTH_IDENTITY_KEY=2222
NACOS_AUTH_IDENTITY_VALUE=2222
NACOS_AUTH_TOKEN=SecretKey012345678901234567890123456789012345678901234567890123456789
NACOS_AUTH_SYSTEM_TYPE=nacos
NACOS_AUTH_ENABLE=true
复制代码
修改 mysql.env 文件
代码:
MYSQL_ROOT_PASSWORD=root
MYSQL_DATABASE=nacos_config
MYSQL_USER=root
MYSQL_PASSWORD=root
LANG=C.UTF-8
复制代码
修改 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
复制代码
以上修改之后就完成了
四、构建镜像&运行容器
以下是在项目根目录下实行下令
# 执行以下命令,会以standalone-mysql-8.yaml中定义的容器信息进行创建并运行容器
docker-compose -f example/standalone-mysql-8.yaml up # 为了方便看控制台,我们用这个演示
# 或者
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 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
大连密封材料
论坛元老
这个人很懒什么都没写!
楼主热帖
Kubernetes(k8s)基础概念介绍 ...
Fastjson反序列化
【游戏客户端与服务器面试题】-- 2022 ...
这是啥SQL,室友看了人傻了
Java EnumMap putAll()方法具有什么功 ...
rk3399pro移植openharmony3.0移植笔记2 ...
python带你采集商家商品数据信息~带你 ...
太厉害了,终于有人能把文件上传漏洞讲 ...
SqlServer对表的基本操作
java中如何将函数作为参数传递呢? ...
标签云
国产数据库
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
网络安全
快速回复
返回顶部
返回列表