🎉🎉欢迎来到我的CSDN主页!🎉🎉
🏅我是平顶山大师,一个在CSDN分享笔记的博主。📚📚
🌟推荐给大家我的博客专栏《Docker】contos7安装 Nacos容器部署单个&&部署集群》。🎯🎯
🎁如果感觉还不错的话请给我关注加三连吧!🎁🎁
继续之前Docker 的知识,今天我来继续分享【Docker】contos7安装 Nacos容器部署单个&&部署集群
目录
一、Nacos单机模式
1.1.创建mysql需要的挂载目录
1.2.创建并运行mysql容器
2、安装下载nacos
二、Nacos集群配置
1.创建集群Nacos
2.负载均衡Nacos
一、Nacos单机模式
1.1.创建mysql需要的挂载目录
如果不会mysql的创建可以看我之前的博客
这里将nacos的sql脚本放入到script文件夹下
1.2.创建并运行mysql容器
为了让我们的容器之间可以相互访问,我们使用自定义的网络mode
创建容器就需要为它指定我们的自定义网络
先删除之前的mysql,因为要重新挂载nacos 的sql文件
docker rm -f m1
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 mode \--ip 172.18.0.100 \-d mysql/mysql-server:5.7
进入我们的mysql容器进行登录
docker exec -it m1 bash
mysql -uroot -p
create database nacos;
use nacos;
source /script/nacos-mysql.sql;
查看数据表:
设置远程连接所以创建一个账户并赋予权限:
grant all on *.* to root@'%' identified by '123456'
重启一下mysql容器:m1
docker restart m1
2、安装下载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.100 \ -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 mode \ --ip 172.18.0.105 \ nacos/nacos-server
-e PREFER_HOST_MODE=ip
:设置 Nacos 的主机模式为 IP 模式,即使用指定的 IP 地址作为主机名。-e MODE=cluster
:设置 Nacos 的运行模式为集群模式。-e NACOS_SERVERS="172.18.0.202:8848 172.18.0.203:8848"
:设置 Nacos 集群的节点地址列表,以空格分隔。-e SPRING_DATASOURCE_PLATFORM=mysql
:设置 Nacos 使用 MySQL 数据库作为数据源。-e MYSQL_SERVICE_HOST=172.18.0.100
:设置 MySQL 数据库的主机地址。-e MYSQL_SERVICE_PORT=3306
:设置 MySQL 数据库的端口号。-e MYSQL_SERVICE_DB_NAME=nacos
:设置 Nacos 在 MySQL 中使用的数据库名称。-e MYSQL_SERVICE_USER=root
:设置连接 MySQL 数据库的用户名。-e MYSQL_SERVICE_PASSWORD=123456
:设置连接 MySQL 数据库的密码。-p 8848:8848
:将容器内的 8848 端口映射到主机的 8848 端口,以便可以通过主机的 IP 地址访问 Nacos 控制台。--name nacos03
:设置容器的名称为 "nacos03"。--restart=always
:设置容器在退出或重启后总是自动重启。--net mode
:设置容器使用的网络模式为 "mode"(这里是一个占位符,请根据实际情况替换为正确的网络模式)。--ip 172.18.0.203
:为容器分配静态 IP 地址,这里设置为 "172.18.0.203"(请确保该 IP 地址在指定的网络范围内且未被占用)。nacos/nacos-server
:使用名为 "nacos/nacos-server" 的 Nacos 服务镜像。
注意这里要.开放防火墙端口,刷新防火墙
firewall-cmd --zone=public --add-port=8848/tcp --permanent
firewall-cmd --reload
查看数据库:这里是没有数据因为nacos里面是没有配置的
浏览器访问一下:
http://www.zkingedu.com:8848/nacos
这里随便配置一个信息,再到后台查看:
二、Nacos集群配置
1.创建集群Nacos
这里有个问题之前的nacos没有删掉,导致端口(这里是 8848)已经被其他进程或容器占用了
docker stop <container_id>,或者docker rm -f<container_id>
2.布置两台nacos
nacos02
docker run -itd \ -e PREFER_HOST_MODE=ip \ -e MODE=cluster \ -e NACOS_SERVERS="172.18.0.202:8848 172.18.0.203:8848" \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e MYSQL_SERVICE_HOST=172.18.0.100 \ -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 mode \ --ip 172.18.0.202 \ nacos/nacos-server
nacos03
docker run -itd \ -e PREFER_HOST_MODE=ip \ -e MODE=cluster \ -e NACOS_SERVERS="172.18.0.202:8848 172.18.0.203:8848" \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e MYSQL_SERVICE_HOST=172.18.0.100 \ -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 mode \ --ip 172.18.0.203 \ nacos/nacos-server
2.负载均衡Nacos
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
浏览器刷新看:
认真写博客的人,见一个少一个🤩🤩🤩🤩🤩🤩🤩🤩🤩
👍 点赞支持,⭐️ 收藏学习,❤️ 关注不迷路~💬 如有错漏请不吝指正~平顶山大师-CSDN博客 平顶山大师-CSDN博客平顶山大师擅长Java,初学,Docker,等方面的知识,平顶山大师关注前端框架,java,idea,前端,正则表达式,eclipse领域.https://blog.csdn.net/m0_73647713?spm=1011.2266.3001.5343