最终Docker6:nacos集群部署

2024-01-19 21:36

本文主要是介绍最终Docker6:nacos集群部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

 mysql容器构建

1.进入soft 文件夹,创建mysql文件夹

2.进入conf文件夹 放入my.conf 配置文件

3.运行mysql容器

4.进入script文件夹 导入 sql文件

5.进入mysql 容器 并登录

6.创建nacos 数据库并使用,运行nacos.sql文件

7.授予用户所有权限

部署单个nacos,连接mysql

1.下载nacos镜像

2.部署单个nacos

3. 开启nacos

4.打开防火墙开启nacos 所在8848 端口号

5.查看nacos 是否运行成功

6.登录nacos网址 

7.再次进入mysql 查看生成的表中是否有数据

8.在nacos 网址中生成一个配置文件 在一次查询数据表中 会发现生成了一条数据

9.删除nacos 重新部署一个nacos 再次查询数据库表数据,会发现数据还在实现nacos数据的持久化

部署nacos集群,实现负载均衡

1.创建自定义网络

2.将刚才部署的nacos连接到自定义网络中

3.查看刚才部署的nacos 网络中多了一条自定义网络(网桥+自定义网络)

4.部署集群nacos

5. 查看nacos01 部署的第一台nacos的运行情况

6.再次部署两台nacos

7.部署nginx实现负载均衡

8.编辑default.conf 文件 放入以下内容

9.运行nginx 部署到自定义网络中


 mysql容器构建


1.进入soft 文件夹,创建mysql文件夹

cd /softmkdir -p mysql/{conf,data,script}

2.进入conf文件夹 放入my.conf 配置文件

cd /mysql/conf

3.运行mysql容器

docker run  \
--name m1 \
-v /soft/mysql/conf/my.cnf:/etc/my.cnf \
-v /soft/mysql/data:/var/lib/mysql \
-v /soft/mysql/script:/script \
--privileged=true \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql/mysql-server:5.7

 可能会出现容器没有运行的情况,这个时候最好使用docker logs m1 查看一下容器日志

4.进入script文件夹 导入 sql文件

cd ../ cd /soft/mysql/script

5.进入mysql 容器 并登录

docker exec -it m1 bashmysql -uroot -p

 效果如下:

 

6.创建nacos 数据库并使用,运行nacos.sql文件

create database nacos;use nacos;source /script/nacos-mysql.sql;show tables;

可能会出现的错误:

如果命令后面没有加分号,会显示没有该指令; 

7.授予用户所有权限

grant all on *.* to root@'%' identified by '123456';

部署单个nacos,连接mysql


1.下载nacos镜像

#进入根目录 下载nacos 镜像
docker pull nacos/nacos-server

2.部署单个nacos

docker run -itd \
-e PREFER_HOST_MODE-ip \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=m1 \
-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 my_net \
nacos/nacos-server

-itd 中的 d表示后台运行

3. 开启nacos

docker restart m1

4.打开防火墙开启nacos 所在8848 端口号

firewall-cmd --zone=public --add-port=3306/tcp --permanentfirewall-cmd --reload

5.查看nacos 是否运行成功

docker logs -f nacos

 nacos运行报错:

 

解决方法:

 1.查看防火墙是否关闭

 2.上面的部署项目的代码是否正确

 3.将mysql也连接到自定义网络my_net

6.登录nacos网址 

如果网址进不去,但是nacos运行没有报错,看看是否运行了容器的ip地址,我们要使用虚拟机的ip地址,通过虚拟机连接到容器 

7.再次进入mysql 查看生成的表中是否有数据

docker exec -it m1 bash;use nacos;select * from config_info;

8.在nacos 网址中生成一个配置文件 在一次查询数据表中 会发现生成了一条数据

9.删除nacos 重新部署一个nacos 再次查询数据库表数据,会发现数据还在实现nacos数据的持久化

docker rm -f nacos#重新运行一个nacos
docker run -itd \
-e PREFER_HOST_MODE-ip \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=172.17.0.2 \
-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 \
nacos/nacos-server

部署nacos集群,实现负载均衡


1.创建自定义网络

docker network create  --subnet=172.20.0.1/16 my_net

2.将刚才部署的nacos连接到自定义网络中

docker network connect my_net m1

3.查看刚才部署的nacos 网络中多了一条自定义网络(网桥+自定义网络)

4.部署集群nacos

docker run -itd \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVERS="nacos02:8848 nacos03:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=m1 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
--name nacos01 \
--net my_net --ip 172.20.0.101 \
--restart=always \
nacos/nacos-server

standalone单例模式 被改成了cluster 说明要部署多个

5. 查看nacos01 部署的第一台nacos的运行情况

docker logs nacos01

6.再次部署两台nacos

#部署第二台
docker run -itd \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVERS="nacos01:8848 nacos02:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=m1 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
--name nacos03 \
--net my_net --ip 172.20.0.102 \
--restart=always \
nacos/nacos-server#部署第三台
docker run -itd \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVERS="nacos02:8848 nacos01:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=m1 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
--name nacos02 \
--net my_net --ip 172.20.0.103 \
--restart=always \
nacos/nacos-server

7.部署nginx实现负载均衡

cd /softlsmkdir nginxcd /nginxmkdir conf.dcd conf.d/

8.编辑default.conf 文件 放入以下内容

upstream nacosList {server nacos01:8848 weight=1;server nacos02:8848 weight=2;server nacos03:8848 weight=2;
}server {listen  80;server_name  www.zking.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;}}

 server nacos01:8848 weight=1;
 server nacos02:8848 weight=2;
 server nacos03:8848 weight=2;

代码中的nacos 为刚才部署的三台nacos

weignt代表nginx负载均衡中的权重规则,每个都为1 代表进入的概率是相同的

9.运行nginx 部署到自定义网络中

docker run -itd \
--name n1 \
-v /soft/nginx/conf.d:/etc/nginx/conf.d \
-p 80:80 \
--net my_net \
nginx

效果图如下

这篇关于最终Docker6:nacos集群部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/623767

相关文章

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

Redis中哨兵机制和集群的区别及说明

《Redis中哨兵机制和集群的区别及说明》Redis哨兵通过主从复制实现高可用,适用于中小规模数据;集群采用分布式分片,支持动态扩展,适合大规模数据,哨兵管理简单但扩展性弱,集群性能更强但架构复杂,根... 目录一、架构设计与节点角色1. 哨兵机制(Sentinel)2. 集群(Cluster)二、数据分片

Linux部署中的文件大小写问题的解决方案

《Linux部署中的文件大小写问题的解决方案》在本地开发环境(Windows/macOS)一切正常,但部署到Linux服务器后出现模块加载错误,核心原因是Linux文件系统严格区分大小写,所以本文给大... 目录问题背景解决方案配置要求问题背景在本地开发环境(Windows/MACOS)一切正常,但部署到

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

MySQL 主从复制部署及验证(示例详解)

《MySQL主从复制部署及验证(示例详解)》本文介绍MySQL主从复制部署步骤及学校管理数据库创建脚本,包含表结构设计、示例数据插入和查询语句,用于验证主从同步功能,感兴趣的朋友一起看看吧... 目录mysql 主从复制部署指南部署步骤1.环境准备2. 主服务器配置3. 创建复制用户4. 获取主服务器状态5

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满

如何在Ubuntu 24.04上部署Zabbix 7.0对服务器进行监控

《如何在Ubuntu24.04上部署Zabbix7.0对服务器进行监控》在Ubuntu24.04上部署Zabbix7.0监控阿里云ECS服务器,需配置MariaDB数据库、开放10050/1005... 目录软硬件信息部署步骤步骤 1:安装并配置mariadb步骤 2:安装Zabbix 7.0 Server