开发者社区 > 云原生 > 正文

请问nacos docker集群部署的时候都需要暴露哪些端口?

请问nacos docker集群部署的时候都需要暴露哪些端口?

展开
收起
三分钟热度的鱼 2023-05-23 15:30:04 667 0
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在使用 Docker 部署 Nacos 集群时,为了使 Nacos 能够正常运行和实现多节点之间的通信,需要暴露以下端口:

    1. 8848 端口:用于 Web 控制台和客户端访问 Nacos Server,默认绑定所有 IP。

    2. 9555 端口:用于 Nacos Server 节点之间的内部通信,默认绑定 Master IP。

    3. 9556 端口:用于 Nacos Server 节点之间的内部通信,默认绑定 Slave IP。

    4. 9999 端口:用于向集群主动上报当前节点的健康状态,如“心跳”和“存活”等信息。

    因此,在 Docker 部署 Nacos 集群时,需要使用 -p 参数将宿主机的端口映射到容器中,例如:

    docker run --name nacos-standalone -e MODE=standalone \
    -p 8848:8848 \
    -p 9555:9555 \
    -p 9556:9556 \
    -p 9999:9999 \
    -d nacos/nacos-server
    

    其中,-p 参数指定了宿主机和容器之间的端口映射关系,-d 参数表示以守护进程方式运行容器。如果您需要启动一个 Nacos 集群,可以根据实际情况添加更多的 Docker 容器,并设置相应的端口映射关系。

    2023-05-23 17:55:54
    赞同 展开评论 打赏
  • 随心分享,欢迎友善交流讨论:)

    在使用 Docker 部署 Nacos 集群时,需要暴露以下端口:

    8848 端口:Nacos Server 的 HTTP 端口,用于提供 HTTP API 服务,需要对外暴露。

    8849 端口:Nacos Server 的 TCP 端口,用于提供心跳检测和配置推送功能,需要对外暴露。

    9555 端口:Nacos Server 的 HTTP 端口,用于提供 Debug 服务,可以不对外暴露。

    9999 端口:Nacos Console 的 HTTP 端口,用于提供 Web 界面,需要对外暴露。

    如果使用了集群方案,还需要对应多个 Nacos Server 节点的端口进行设置,以便它们之间能够互相通信。具体的端口设置可以参考 Nacos 官方文档。

    在创建 Docker 容器的时候,可以使用 -p 参数对需要暴露的端口进行映射,例如:

    docker run -p 8848:8848 -p 8849:8849 -p 9999:9999 nacos/nacos-server:latest

    这段命令将会启动一个 Nacos Server 容器,并将 8848、8849 和 9999 端口映射到宿主机上,以方便外部访问。

    2023-05-23 16:45:33
    赞同 展开评论 打赏
  • 在 Nacos Docker 集群部署时,需要暴露以下端口:

    • 8848:Nacos 控制台 Web 管理端口;
    • 9555:Nacos 控制台内置的 Prometheus 监控页面端口;
    • 8849:Nacos 服务器通信端口;
    • 8866:Nacos 服务器节点之间使用的 RPC 通信端口。

    具体而言,如果您使用 Docker Compose 部署 Nacos,可以参考以下的 docker-compose.yml 文件:

    version: '3'
    services:
      nacos-server-1:
        image: nacos/nacos-server
        container_name: nacos-server-1
        ports:
          - "8848:8848"
          - "9555:9555"
          - "8849:8849"
          - "8866:8866"
        command: "nacos --server.port=8848 --server.ip=192.168.0.1 --spring.datasource.platform=mysql"
        environment:
          - MODE=standalone
          - SPRING_DATASOURCE_PLATFORM=mysql
          - MYSQL_SERVICE_HOST=mysql
          - MYSQL_SERVICE_PORT=3306
          - MYSQL_DATABASE=nacos
          - MYSQL_USERNAME=nacos
          - MYSQL_PASSWORD=nacos
        depends_on:
          - mysql
      nacos-server-2:
        image: nacos/nacos-server
        container_name: nacos-server-2
        ports:
          - "8848:8848"
          - "9555:9555"
          - "8849:8849"
          - "8866:8866"
        command: "nacos --server.port=8848 --server.ip=192.168.0.2 --spring.datasource.platform=mysql"
        environment:
          - MODE=standalone
          - SPRING_DATASOURCE_PLATFORM=mysql
          - MYSQL_SERVICE_HOST=mysql
          - MYSQL_SERVICE_PORT=3306
          - MYSQL_DATABASE=nacos
          - MYSQL_USERNAME=nacos
          - MYSQL_PASSWORD=nacos
        depends_on:
          - mysql
      mysql:
        image: mysql:5.7
        container_name: mysql
        ports:
          - "3306:3306"
        command: "--default-authentication-plugin=mysql_native_password"
        environment:
          - MYSQL_ROOT_PASSWORD=root
          - MYSQL_DATABASE=nacos
          - MYSQL_USER=nacos
          - MYSQL_PASSWORD=nacos
    

    在该文件中,我们定义了两台 Nacos 服务器节点和一个 MySQL 数据库节点。分别暴露了控制台 Web 管理端口、Prometheus 监控页面端口、服务器通信端口和 RPC 通信端口。这就是 Nacos 集群部署时需要暴露的端口。

    2023-05-23 16:31:47
    赞同 展开评论 打赏
问答分类:
问答地址:

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载