🎉🎉欢迎来到我的CSDN主页!🎉🎉
🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚
🌟推荐给大家我的专栏《Docker实战》。🎯🎯
👉点击这里,就可以查看我的主页啦!👇👇
Java方文山的个人主页
🎁如果感觉还不错的话请给我点赞吧!🎁🎁
💖期待你的加入,一起学习,一起进步!💖💖
目录
前言
一、Nacos单机模式
1、MySQL容器安装
1.1.创建mysql需要的挂载目录
1.2.创建并运行mysql容器
1.3.创建远程连接用户并执行sql脚本
2、Nacos容器安装
2.1.创建Nacos并启动
2.2.开放防火墙端口
2.3.查看数据库有无数据
二、Nacos集群配置
1.创建集群Nacos
2.负载均衡Nacos
前言
安装之前我们需要准备一个mysql,当前安装方式是将数据持久化到数据库中的,这里的部署先是单机模式后面再讲集群模式
一、Nacos单机模式
1、MySQL容器安装
1.1.创建mysql需要的挂载目录
拉取mysql
docker pull mysql:5.7
mysql需要一个my.cnf的配置文件,目前我们还没有所以需要在宿主机上创建一个将该文件放入到目录中并且将我们的sql脚本放入到script文件中
mkdir -p /mysql/{conf,data,script}
将我们的my.cnf文件放入到conf文件夹下,将sql脚本放入到script文件夹下
1.2.创建并运行mysql容器
为了让我们的容器之间可以相互访问,所以我们创建一个网络
docker network create --subnet 172.18.0.0/16 --gateway 172.18.1.1 net
现在创建容器就需要为它指定我们的自定义网络
docker run \ --name m1 \ -v /mysql/conf/my.cnf:/etc/my.cnf \ -v /mysql/data:/var/lib/mysql \ -v /mysql/script:/script \ --privileged=true \ -e MYSQL_ROOT_PASSWORD=123456 \ --net net \ --ip 172.18.0.1 \ -d mysql/mysql-server:5.7
1.3.创建远程连接用户并执行sql脚本
进入我们的mysql容器进行登录
docker exec -it m1 bash mysql -uroot -p
创建所需的数据库或者使用远程工具连接创建一下也可以,我这里就一张表就不那么麻烦了
create database nacos;
因为前面做了目录挂载所以容器也会有这个脚本,切换到刚创建的数据库中执行sql
use nacos; source /script/nacos-mysql.sql;
现在查看一下就会有很多的数据表了
最后我们现在需要一个账户进行远程连接所以创建一个账户并赋予权限
grant all on *.* to root@'%' identified by '密码'
没有问题退出后记得重启一下docker restart m1
2、Nacos容器安装
2.1.创建Nacos并启动
首先我们需要拉取一个Nacos的镜像
docker pull nacos/nacos-server
运行并启动Nacos
docker run -itd \ -e PREFER_HOST_MODE=ip \ -e MODE=standalone \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e MYSQL_SERVICE_HOST=172.18.0.1 \ -e MYSQL_SERVICE_PORT=3306 \ -e MYSQL_SERVICE_DB_NAME=nacos \ -e MYSQL_SERVICE_USER=root \ -e MYSQL_SERVICE_PASSWORD=123456 \ -p 8848:8848 \ --name nacos \ --restart=always \ --net net \ --ip 172.18.0.2 \ nacos/nacos-server
注意:这里的MYSQL打头的配置都是填写我们刚刚m1容器的信息
2.2.开放防火墙端口
①开放端口
firewall-cmd --zone=public --add-port=8848/tcp --permanent
②刷新防火墙
firewall-cmd --reload
2.3.查看数据库有无数据
首先在浏览器访问一下我们的Nacos,查看是否可以访问
如果可以访问再查看相应的数据库,现在是没有数据的
我们在nacos配置中心随便创作一个数据再来查看一下就会有数据了,说明我们的nacos已经完全生效了。
二、Nacos集群模式
先将我们刚刚所创建的nacos容器给删除掉
docker rm -f nacos
1.创建集群Nacos
docker run -itd \ -e PREFER_HOST_MODE=ip \ -e MODE=cluster \ -e NACOS_SERVERS="172.18.0.3:8848 172.18.0.4:8848" \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e MYSQL_SERVICE_HOST=172.18.0.1 \ -e MYSQL_SERVICE_PORT=3306 \ -e MYSQL_SERVICE_DB_NAME=nacos \ -e MYSQL_SERVICE_USER=root \ -e MYSQL_SERVICE_PASSWORD=123456 \ -p 8848:8848 \ --name nacos01 \ --restart=always \ --net net \ --ip 172.18.0.2 \ nacos/nacos-server
指定Nacos为集群模式cluster并设置除自己以外的Nacos地址
这时候我们访问nacos可以看到这里的模式也变成了cluster
现在我们将剩下的两台nacos容器搞出来
docker run -itd \ -e PREFER_HOST_MODE=ip \ -e MODE=cluster \ -e NACOS_SERVERS="172.18.0.2:8848 172.18.0.4:8848" \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e MYSQL_SERVICE_HOST=172.18.0.1 \ -e MYSQL_SERVICE_PORT=3306 \ -e MYSQL_SERVICE_DB_NAME=nacos \ -e MYSQL_SERVICE_USER=root \ -e MYSQL_SERVICE_PASSWORD=123456 \ --name nacos02 \ --restart=always \ --net net \ --ip 172.18.0.3 \ nacos/nacos-server
docker run -itd \ -e PREFER_HOST_MODE=ip \ -e MODE=cluster \ -e NACOS_SERVERS="172.18.0.2:8848 172.18.0.3:8848" \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e MYSQL_SERVICE_HOST=172.18.0.1 \ -e MYSQL_SERVICE_PORT=3306 \ -e MYSQL_SERVICE_DB_NAME=nacos \ -e MYSQL_SERVICE_USER=root \ -e MYSQL_SERVICE_PASSWORD=123456 \ --name nacos03 \ --restart=always \ --net net \ --ip 172.18.0.4 \ nacos/nacos-server
看似我有三台nacos容器实际上我们只有一台,因为只有一台进行了端口映射
2.负载均衡Nacos
创建nginx的配置文件目录并将配置文件放入
mkdir -p /soft/nginx/conf.d
upstream nacosList { server nacos01:8848 weight=1; server nacos02:8848 weight=2; server nacos03:8848 weight=2; } server { listen 80; server_name www.zkingedu.com; location / { root /etc/nginx/html/; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location /nacos { proxy_pass http://nacosList; } }
创建nginx容器
docker run -itd \ --name nginx \ -v /soft/nginx/conf.d:/etc/nginx/conf.d \ -p 80:80 \ --net net \ --ip 172.18.0.5 \ nginx
现在我们访问一下看看
可以看到我们去掉了端口号8848,证明我们现在是通过nginx负载均衡进行访问的
三、注意事项
我们在发布配置的时候可能会出现以下情况
建表SQL语句应查看对应Nacos Server的tag版本,我用的是1.4.0的SQL所以产生问题。
按照官方文档重新建表,或直接补全列:
-- config_info 表 alter table config_info add encrypted_data_key varchar(255); -- his_config_info 表 alter table his_config_info add encrypted_data_key varchar(255);
到这里我的分享就结束了,欢迎到评论区探讨交流!!
💖如果觉得有用的话还请点个赞吧 💖
猜你喜欢
- 13天前(四川率先建立“双定向”基层文化人才职称评审通道机制)四川率先建立“双定向”基层文化人才职称评审通道机制
- 13天前(fender japan hybrid)Fender东京旗舰店盛大开幕在即,开售商品和店内服务提前揭晓
- 13天前(河南省文旅大会精神)2025河南省文化旅游发展大会新闻发布会在郑州召开
- 13天前(“为人民绽放——国家艺术基金优秀剧目展演”在合肥开幕)“为人民绽放——国家艺术基金优秀剧目展演”在合肥开幕
- 13天前(马尔代夫华尔道夫酒店多少钱)Chef Zhao就任马尔代夫伊挞富士岛华尔道夫酒店Li Long中餐厅新主厨
- 13天前(天津四季酒店开业时间)天津四季酒店邀你开启灿烂暑假
- 13天前(岭南东方大酒店)粤西成势 | 阳江阳春长兴岭南东方酒店正式签约,粤西文旅再添明珠
- 13天前(殷建祥简历)全国十大牛商解码:殷建祥如何用178天技术突围打造星空梦星空房
- 13天前(筑格集团有限公司)洲际酒店集团旗下筑格酒店品牌正式亮相大中华区
- 13天前(阿斯塔纳航空属于哪个联盟)阿斯塔纳航空荣获Skytrax世界航空公司大奖,将继续助力中哈交流往来
网友评论
- 搜索
- 最新文章
- (2020广州车展哈弗)你的猛龙 独一无二 哈弗猛龙广州车展闪耀登场
- (哈弗新能源suv2019款)智能科技颠覆出行体验 哈弗重塑新能源越野SUV价值认知
- (2021款全新哈弗h5自动四驱报价)新哈弗H5再赴保障之旅,无惧冰雪护航哈弗全民电四驱挑战赛
- (海南航空现况怎样)用一场直播找到市场扩张新渠道,海南航空做对了什么?
- (visa jcb 日本)优惠面面俱到 JCB信用卡邀您畅玩日本冰雪季
- (第三届“堡里有年味·回村过大年”民俗花灯会活动)第三届“堡里有年味·回村过大年”民俗花灯会活动
- (展示非遗魅力 长安启源助力铜梁龙舞出征)展示非遗魅力 长安启源助力铜梁龙舞出征
- (阿斯塔纳航空公司)阿斯塔纳航空机队飞机数量增至50架
- (北京香港航班动态查询)香港快运航空北京大兴新航线今日首航
- (我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉)我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉
- 热门文章