最终Docker6:nacos集群部署

news2024/12/25 13:20:26

目录

 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 /soft

mkdir -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

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

cd ../ 

cd /soft/mysql/script

5.进入mysql 容器 并登录

docker exec -it m1 bash

mysql -uroot -p

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

create database nacos

use nacos

source /script/nacos/nacos-mysql.sql

7.授予用户所有权限

grant all on *.* to dbl@'%' 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_SERVICF_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

-itd 中的 d表示后台运行

3. 开启nacos

docker restart m1

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

firewall -cmd --list-port 

5.查看nacos 是否运行成功

docker logs -f nacos

6.登录nacos网址 

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_SERVICF_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_SERVICF_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 \
-p 8848:8848 \
--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 nacos03:8848"
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICF_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.102 \
--restart=always \
nacos/nacos-server

#部署第三台
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_SERVICF_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

7.部署nginx实现负载均衡

cd /soft

ls

mkdir nginx

cd /nginx

mkdir conf.d

cd 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.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;
	}
	}

 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

效果图如下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1395374.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

loading stable diffusion model: FileNotFoundError解决方案

大家好,我是水滴~~ 本文主要介绍在安装 stable-diffusion-webui 时出现的 loading stable diffusion model: FileNotFoundError 问题的解决方案,希望能对你有所帮助。 文章目录 问题描述解决方案 问题描述 在安装 stable-diffusion-webui 过程中出现 l…

Linux环境下,针对QT软件工程搭建C++Test单元测试环境的操作指南

文章目录 前言一、安装QT二、安装CTest三、使用QT生成.bdf文件四、创建CTest工程注意事项 前言 CTest是Parasoft公司出品的一款可以针对C/C源代码进行静态分析、单元测试、集成测试的测试工具。本文主要讲解如何在Linux环境下,搭建QT插件版的CTest测试环境。 一、…

大数据开发之Hadoop(优化新特征)

第 1 章:HDFS-故障排除 注意:采用三台服务器即可,恢复到Yarn开始的服务器快照。 1.1 集群安全模块 1、安全模式:文件系统只接收读数据请求,而不接收删除、修改等变更请求 2、进入安全模式场景 1)NameNod…

GPT应用开发:GPT插件开发指南

欢迎阅读本系列文章!我将带你一起探索如何利用OpenAI API开发GPT应用。无论你是编程新手还是资深开发者,都能在这里获得灵感和收获。 本文,我们将继续展示聊天API中插件的使用方法,让你能够轻松驾驭这个强大的工具。 插件运行效…

记一次 .NET某道闸收费系统 内存溢出分析

一:背景 1. 讲故事 前些天有位朋友找到我,说他的程序几天内存就要爆一次,不知道咋回事,找不出原因,让我帮忙看一下,这种问题分析dump是最简单粗暴了,拿到dump后接下来就是一顿分析。 二&…

移动web开发流式布局

1.0 移动端基础 1.1 浏览器现状 PC端常见浏览器:360浏览器、谷歌浏览器、火狐浏览器、QQ浏览器、百度浏览器、搜狗浏览器、IE浏览器。 内核: 浏览器内核备注Safariwebkitwebkit内核是苹果公司开发的一款渲染引擎,目前已被很多手机厂商所采…

Java开发的审批流系统,前端使用vue,支持常态化工作审批流程

一、项目形式 springbootvueactiviti集成了activiti在线编辑器,快速开发平台,可插拔工作流服务。 二、项目介绍 本项目拥有用户管理,部门管理,代码生成,系统监管,报表,大屏展示,业…

文心一言使用分享

ChatGPT 和文心一言哪个更好用? 一个直接可以用,一个还需要借助一些工具,还有可能账号会消失…… 没有可比性。 通用大模型用于特定功能的时候需要一些引导技巧。 import math import time def calculate_coordinate(c, d, e, f, g, h,…

一套可以替代人工的Cnc机床自动上下料机器人

Cnc机床自动上下料|整体解决方案 CNC机床自动上下料是指通过自动化设备和系统,实现CNC机床在加工过程中自动进行上下料操作。这种自动化系统通常包括自动送料机和卸料机,可以根据加工工件的尺寸和形状自动调整上下料的位置和角度,从而提高生产…

SpringCloud整合Zookeeper代替Eureka案例

文章目录 本期代码下载地址zookeeper简介zookeeper下载安装新建服务提供者测试 新建消费者测试 本期代码下载地址 地址:https://github.com/13thm/study_springcloud/tree/main/days4 zookeeper简介 zookeeper是一个分布式协调工具,可以实现注册中心功能 关闭Lin…

VMware Workstation Pro虚拟机搭建

下载链接:Download VMware Workstation Pro 点击上方下载,安装过程很简单,我再图片里面说明 等待安装中。。。。。是不是再考虑怎样激活,我都给你想好了,在下面这个链接,点赞收藏拿走不谢。 https://downl…

DBA技术栈MongoDB:简介

1.1 什么是MongoDB? MongoDB是一个可扩展、开源、表结构自由、用C语言编写且面向文档的数据库,旨在为Web应用程序提供高性能、高可用性且易扩展的数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当…

ElasticSearch的常用增删改查DSL和代码

es增删改查常用语法 我们日常开发中,操作数据库写sql倒是不可能忘记,但是操作es的dsl语句有时候很容易忘记,特地记录一下方便查找。 DSL语句 1、创建索引 -- 创建索引 PUT /my_index {"mappings": {"properties": {&…

数据结构:链式栈

stack.h /* * 文件名称&#xff1a;stack.h * 创 建 者&#xff1a;cxy * 创建日期&#xff1a;2024年01月18日 * 描 述&#xff1a; */ #ifndef _STACK_H #define _STACK_H#include <stdio.h> #include <stdlib.h>typedef struct stack{int data…

查找局域网树莓派raspberry的mac地址和ip

依赖python库&#xff1a; pip install socket pip install scapy运行代码&#xff1a; import socket from scapy.layers.l2 import ARP, Ether, srpdef get_hostname(ip_address):try:return socket.gethostbyaddr(ip_address)[0]except socket.herror:# 未能解析主机名ret…

Leetcode2207. 字符串中最多数目的子字符串

Every day a Leetcode 题目来源&#xff1a;2207. 字符串中最多数目的子字符串 解法1&#xff1a;贪心 一次遍历 设 pattern 的第一个字符为 x&#xff0c;第二个字符为 y。 根据题意&#xff0c;x 插入的位置越靠左&#xff0c;答案的个数越多&#xff1b;y 插入的位置越…

大数据StarRocks(八):集群扩缩容

一、FE扩缩容 StarRocks FE 节点分为 Follower 节点和 Observer 节点。Follower 节点参与选举投票和写入&#xff0c;Observer 节点只用来同步日志&#xff0c;扩展读性能。 注意&#xff1a; 所有 FE 节点的 http_port 必须相同。Follower FE 节点&#xff08;包括 Leader …

大数据工作岗位分析

前言&#xff1a;随着大数据需求的增多&#xff0c;许多中小公司和团队也新增或扩展了大数据工作岗位&#xff1b;但是却对大数据要做什么和能做什么&#xff0c;没有深入的认识&#xff1b;往往是招了大数据岗位&#xff0c;搭建起基础能力后&#xff0c;就一直处于重复开发和…

K8S Informer机制原理解读 | 架构设计

在Kubernetes系统中&#xff0c;组件之间通过HTTP协议进行通信&#xff0c;在不依赖任何中间件的情况下需要保证消息的实时性、可靠性、顺序性等。那么Kubernetes是如何做到的呢&#xff1f;答案就是Informer机制。Kubernetes的其他组件都是通过client-go的Informer机制与Kuber…

Git入门详细教程

一、Git概述&#x1f387; Git官网 Git是一个开源的分布式版本控制系统&#xff0c;用于跟踪文件的变化和协作开发。它允许多个开发者在同一项目中共同工作&#xff0c;并能够有效地管理代码的版本和历史记录。Git可以帮助开发团队更好地协作&#xff0c;追踪代码变更&#xf…