最终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 /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

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

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

firewall-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 /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.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

效果图如下

  • 25
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Docker Compose部署Nacos集群,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了DockerNacos的数据库。 2. 创建一个目录来存放Nacos相关文件。 3. 在该目录下创建并编写一个名为`nginx.conf`的配置文件,用于配置Nginx。 4. 创建并编写一个名为`docker-compose.yaml`的配置文件,用于编排Nacos集群容器。 5. 使用以下命令来编排和启动Nacos集群容器: ``` docker-compose -f docker-compose.yaml up -d ``` 6. 等待一段时间,直到所有容器都成功启动。你可以使用以下命令来查看容器的运行情况: ``` docker ps -n 5 ``` 7. 最后,你可以通过访问`http://{ip}:8845/nacos`来访问Nacos的管理界面,账号和密码都是`nacos`。 请注意,上述步骤中的具体配置文件和命令可以根据你的实际情况进行调整。 #### 引用[.reference_title] - *1* *2* [docker-compose部署Nacos集群](https://blog.csdn.net/weixin_44842613/article/details/124629239)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [使用Docker Compose快速部署整套Nacos集群](https://blog.csdn.net/m0_37924754/article/details/131241702)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值