最终Docker6:nacos集群部署
standalone单例模式 被改成了cluster 说明要部署多个-p 80:80 \nginx效果图如下。
·
目录
6.创建nacos 数据库并使用,运行nacos.sql文件
8.在nacos 网址中生成一个配置文件 在一次查询数据表中 会发现生成了一条数据
9.删除nacos 重新部署一个nacos 再次查询数据库表数据,会发现数据还在实现nacos数据的持久化
3.查看刚才部署的nacos 网络中多了一条自定义网络(网桥+自定义网络)
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
效果图如下
更多推荐
已为社区贡献1条内容
所有评论(0)