使用Docker搭建Nacos集群部署微服务
使用Docker搭建Nacos集群部署微服务
搭建集群
集群部署架构图
Docker拉取Nacos镜像
docker pull nacos/nacos-server
导入镜像数据库
新建数据库
运行SQL文件
创建用户
配置角色权限
创建自定义网络
Docker集群部署Nacos时要注意,创建的Nacos容器填写的ip都是外部ip,但是创建的网段却是docker内部的网段,因此 我们需要只能在同一网段的ip
docker network ls
docker network create --driver bridge --subnet=172.19.0.0/16 --gateway=172.19.0.1 mynetwork
docker network inspect mynetwork
创建Nacos容器集群
my-nacos1
docker run -d \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVER_IP=172.19.0.2 \
-e NACOS_APPLICATION_PORT=8848 \
-e NACOS_SERVERS="172.19.0.2:8848 172.19.0.3:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=服务器公网ip \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=13851176590 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-p 8848:8848 \
--network=mynetwork \
--name my-nacos1 \
--ip 172.19.0.2 \
nacos/nacos-server
my-nacos2
docker run -d \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVER_IP=172.19.0.3 \
-e NACOS_APPLICATION_PORT=8848 \
-e NACOS_SERVERS="172.19.0.2:8848 172.19.0.3:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=服务器公网ip \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=13851176590 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-p 8849:8848 \
--network=mynetwork \
--name my-nacos2 \
--ip 172.19.0.3 \
nacos/nacos-server
访问my-nacos1地址:http://{ip}:8848/nacos/index.html
访问my-nacos2地址:http://{ip}:8849/nacos/index.html
输入默认的账户密码nacos登录成功则说明集群部署成功
使用Nginx反向代理Nacos集群
拉取nginx镜像并创建nginx容器
docker pull nginx
docker run --name nginx -p 8080:80 -d nginx
将容器中的nginx配置文件拷贝到宿主机/usr/local/nginx/conf目录下
mkdir -p /usr/local/nginx/conf/nginx.conf
docker cp 53cf4d545507:/etc/nginx/nginx.conf /usr/local/nginx/conf/nginx.conf
停止并删除之前的nginx容器
docker stop
docker rm
修改nginx.conf配置
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/conf.d/*.conf;
upstream cluster{
server 172.19.0.2:8848;
server 172.19.0.3:8848;
}
server {
listen 8080;
server_name _;
location / {
proxy_pass http://cluster;
}
}
}
数据挂载运行docker容器
docker run --name nginx --network=mynetwork -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro -p 8080:8080 -d nginx
访问:http://{ip}:8080/nacos/
修改配置文件
cloud:
nacos:
discovery:
server-addr:{ip}:8080
运行服务
到此,本地服务已经通过Nginx反向代理注册到远端服务器的Nacos的Docker容器集群中,真是非常好用。
参考文档:
Docker:docker部署Nacos(单例与集群)并配置自定义Mysql:https://www.cnblogs.com/nhdlb/p/16139178.html
使用Docker完成Nacos集群部署:https://juejin.cn/post/6861996608247201806#
SpringBoot整合Nacos集群报错,以及解决方案:https://www.jianshu.com/p/a2bde820d8b5
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgaafjj
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13