最终Docker6:nacos集群部署

发布时间:2024年01月19日

目录

?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

效果图如下

文章来源:https://blog.csdn.net/d2916172682/article/details/135683791
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。