目录
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
效果图如下