raw0xff
V2EX  ›  Docker

当 docker-compose 的主机 ports 是区间时, up 起来就很慢,求解

  •  
  •   raw0xff · Mar 7, 2023 · 1555 views
    This topic created in 1162 days ago, the information mentioned may be changed or developed.
    version: "3"
    services:
      node:
        build: .
        image: alpine
        ports:
          -  "58001-58100:9999"
        scale: 20
    

    当 ports 是区间时,每个 node 到 start 就很慢。 当 ports: "9999"只指定 node 端口时,快是快了,但是偶尔会有 node 的 port not bound 。 当 ports: "58888:9999"时不能--scale 。。。(废话)

    求问大佬,是我使用姿势不对吗?

    5 replies    2023-03-30 20:22:46 +08:00
    yinmin
        1
    yinmin  
       Mar 29, 2023
    node 容器是给其它容器使用的吧?

    docker 同一个虚拟内网里的容器可以相互直接访问,无需 port 。

    新建一个虚拟内网,把 node 及相关容器都放这个内网里,你就可以把 node 容器里的 ports 参数删除掉,启动速度就快了。
    raw0xff
        2
    raw0xff  
    OP
       Mar 30, 2023
    @yinmin 需要从外部访问虚拟内网的容器服务,所以需要每个 IP 的固定端口绑定一个我物理机的本地随机端口。
    yinmin
        3
    yinmin  
       Mar 30, 2023
    我不清楚你 node 里跑什么应用。从原理上,起多个容器是为了在宿主机上运行多个进程跑并发。有些软件有 workers 概念,在一个容器里启动多个进程跑并发。例如:Flask 的 Gunicorn 的 workers 参数。

    是不是可以换一个思路,在一个容器里启动多个 workers ,而不是使用 scale 方式启用多个容器?
    yinmin
        4
    yinmin  
       Mar 30, 2023
    另外,启动 1 个容器大概需要 0.2 秒~0.5 秒,你使用 scale 同时启动 20 个容器,慢一点是正常的。
    raw0xff
        5
    raw0xff  
    OP
       Mar 30, 2023
    @yinmin 我主要是模拟对等节点,目前启动一次 20 个节点六七秒钟,还能忍,调试好了就不用了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   921 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 20:34 · PVG 04:34 · LAX 13:34 · JFK 16:34
    ♥ Do have faith in what you're doing.