• 使用Docker部署Nacos集群


    近年来获得的成功可以分为三种:登录成功、下载成功、付款成功

    官方链接

    名称版本地址
    Nacos官网2.1.1https://nacos.io/zh-cn/

    部署步骤

    0. 准备环境
    • 创建虚拟机
    • 安装docker
    • 安装docker-compose
    • Mysql数据库

    自行百度,不再赘述

    1. 创建 Nacos 数据库

    初始化mysql数据库,数据库初始化文件:nacos-mysql.sql
    该sql文件存在nacos安装包中,从安装包中找

    2. docker 拉取 nacos镜像
    docker pull nacos/nacos-server:v2.1.1
    
    • 1
    3. 创建目录
    nacos-docker -- nacos集群的相关文件
    	├── docker-compose.yml -- docker-compose 配置文件  
    	├── master  -- nacos节点的相关文件
    		   ├── application.properties -- naocs节点挂载的配置文件
    		   ├── logs   -- nacos 节点挂载的日志文件夹
    	├── slave1  -- nacos节点的相关文件
    		   ├── application.properties -- naocs节点挂载的配置文件
    		   ├── logs   -- nacos 节点挂载的日志文件夹
    	├── slave2  -- nacos节点的相关文件
    		   ├── application.properties -- naocs节点挂载的配置文件
    		   ├── logs   -- nacos 节点挂载的日志文件夹
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    4. application.properties
    
    server.servlet.contextPath=/nacos
    
    server.error.include-message=ON_PARAM
    # 端口号
    server.port=8848
    
    # 数据库信息的配置
    pring.datasource.platform=mysql
    db.num=1
    db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?useUnicode=true&characterEncoding=utf8&useSSL=false
    db.user=root
    db.password=root
    
    # 以下为默认配置,暂时不用管
    ### Connection pool configuration: hikariCP
    db.pool.config.connectionTimeout=30000
    db.pool.config.validationTimeout=10000
    
    nacos.naming.empty-service.auto-clean=true
    nacos.naming.empty-service.clean.initial-delay-ms=50000
    nacos.naming.empty-service.clean.period-time-ms=30000
    
    management.metrics.export.elastic.enabled=false
    
    management.metrics.export.influx.enabled=false
    
    server.tomcat.accesslog.enabled=true
    
    ### The access log pattern:
    server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i
    
    server.tomcat.basedir=file:.
    
    nacos.core.auth.system.type=nacos
    
    nacos.core.auth.enabled=false
    
    nacos.core.auth.caching.enabled=true
    
    nacos.core.auth.enable.userAgentAuthWhite=false
    
    nacos.core.auth.server.identity.key=serverIdentity
    nacos.core.auth.server.identity.value=security
    
    ### The token expiration in seconds:
    nacos.core.auth.plugin.nacos.token.expire.seconds=18000
    ### The default token:
    nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789
    
    cos.istio.mcp.server.enabled=false
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    5. Docker中自定义网络

    创建集群你需要知道 IP 吧,那么怎么给启动的容器指定 IP 呢?我们就需要自定义网络

    docker network create --driver bridge --subnet 172.20.0.0/16 --gateway 172.20.0.1 cloud_net
    
    • 1
    6. docker-compose.yml
    version : '3.8'
    services:
      nacos-master:
        # 容器名称
        container_name: nacos-master
        # 镜像
        image: nacos/nacos-server:v2.1.1
        environment:
          # 集群节点
          - NACOS_SERVERS=172.20.0.2:8848 172.20.0.3:8848 172.20.0.4:8848
        volumes:
          # 文件挂载
          - ./master/logs/:/home/nacos/logs
          - ./master/application.properties:/home/nacos/conf/application.properties
        ports:
          # 端口映射
          - "8848:8848"
          - "9848:9848"
          - "9849:9849"
          # 指定网络,IP
        networks:
          cloud_net:
            ipv4_address: 172.20.0.2
    
      nacos-slave1:
        container_name: nacos-slave1
        image: nacos/nacos-server:v2.1.1
        environment:
          - NACOS_SERVERS=172.20.0.2:8848 172.20.0.3:8848 172.20.0.4:8848
        volumes:
          - ./slave1/logs/:/home/nacos/logs
          - ./slave1/application.properties:/home/nacos/conf/application.properties
        ports:
          - 8850:8848
          - 9850:9848
          - 9851:9849
        networks:
          cloud_net:
            ipv4_address: 172.20.0.3
    
      nacos-slave2:
        container_name: nacos-slave2
        image: nacos/nacos-server:v2.1.1
        environment:
          - NACOS_SERVERS=172.20.0.2:8848 172.20.0.3:8848 172.20.0.4:8848
        volumes:
          - ./slave2/logs/:/home/nacos/logs
          - ./slave2/application.properties:/home/nacos/conf/application.properties
        ports:
          - "8852:8848"
          - "9852:9848"
          - "9853:9849"
        networks:
          cloud_net:
            ipv4_address: 172.20.0.4
    # 指定使用已经创建的网络
    networks:
      default:
        external:
          name: cloud_net
      cloud_net:
        external: true
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    7. 创建容器
    # -d 后台运行
    docker-compose up -d
    
    • 1
    • 2

    其他命令

    # 关闭
    docker-compose stop
    # 运行
    docker-compose start
    # 删除
    docker-compose rm
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    8. 开启鉴权
    # 在 application.properties 将 nacos.core.auth.enabled 设为 true
    nacos.core.auth.system.type=nacos
    nacos.core.auth.enabled=true
    
    • 1
    • 2
    • 3

    修改完配置后不是立即生效,需要将容器重启

    docker-compose restart
    
    • 1

    部署注意点

    1. docker搭建nacos集群,挂载 cluster.conf 文件不起作用。需要在 docker-compose.yml 文件中配置集群的节点

      version : '3.8'
      services:
        nacos-master:
          environment:
            # 配置集群的节点
            - NACOS_SERVERS=172.20.0.2:8848 172.20.0.3:8848 172.20.0.4:8848
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
    2. 指定网络与IP,关键配置

      version : '3.8'
      services:
        nacos-master:
          networks:
            cloud_net:
              ipv4_address: 172.20.0.4
      # 指定使用已经创建的网络
      networks:
        default:
          external:
            name: cloud_net
        cloud_net:
          external: true
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
    3. 通用配置连接
      例如,内存大小,集群地址,数据库链接
      https://nacos.io/zh-cn/docs/quick-start-docker.html

    成功截图

    请添加图片描述

  • 相关阅读:
    什么情况?吉利减持沃尔沃股份套现3.5亿美元
    10分钟带你进入Swagger的世界,快来看一看吧
    EXCEL里数值列如何显示序号?如何重新排序? 怎么取得排序后的序号?
    竞赛 深度学习 机器视觉 车位识别车道线检测 - python opencv
    opencv-图像梯度
    外汇天眼:Poipex 申请出金超过100天不到账!投资者250万入金打水漂!所有联系方式全不回应
    春播秋收 “羊”鸣德州 一场“苏尼特羊”跨越千里的美丽邂逅
    『无为则无心』Python面向对象 — 54、重写和super()函数
    Real-Time Rendering——9.7 Microfacet Theory微法理论
    ELK + filebeat日志解析、日志入库优化 、logstash过滤器配置属性
  • 原文地址:https://blog.csdn.net/SiuMu_/article/details/126837913