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 。。。(废话)
求问大佬,是我使用姿势不对吗?
1
yinmin 2023-03-29 21:07:02 +08:00
node 容器是给其它容器使用的吧?
docker 同一个虚拟内网里的容器可以相互直接访问,无需 port 。 新建一个虚拟内网,把 node 及相关容器都放这个内网里,你就可以把 node 容器里的 ports 参数删除掉,启动速度就快了。 |
3
yinmin 2023-03-30 17:26:05 +08:00
我不清楚你 node 里跑什么应用。从原理上,起多个容器是为了在宿主机上运行多个进程跑并发。有些软件有 workers 概念,在一个容器里启动多个进程跑并发。例如:Flask 的 Gunicorn 的 workers 参数。
是不是可以换一个思路,在一个容器里启动多个 workers ,而不是使用 scale 方式启用多个容器? |
4
yinmin 2023-03-30 17:53:00 +08:00
另外,启动 1 个容器大概需要 0.2 秒~0.5 秒,你使用 scale 同时启动 20 个容器,慢一点是正常的。
|