【Docker】contos7安装 Nacos容器部署单个&&部署集群

发布时间:2024年01月19日


? ? ? ????????????????????????? ? 🎉🎉欢迎来到我的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

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