• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

使用Docker搭建Nacos集群部署微服务

武飞扬头像
破烂摆烂人
帮助1

使用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
系列文章
更多 icon
同类精品
更多 icon
继续加载