version: "3" services: nginx: image: nginx:1.19.9-alpine restart: always ports: - 55300-55399:80
当“$ docker compose up --scale nginx=5 -d”后,只会多 run 一个 nginx ,其他只是 created ,其他说端口冲突。如何批量增加服务,端口范围也给了呀,为啥一直冲突。
1
raw0xff OP ```yaml
version: "3" services: nginx: image: nginx:1.19.9-alpine restart: always ports: - 55300-55399:80 ``` |
2
ruidoBlanco 2022-07-18 06:15:27 +08:00
把端口那行双引号试试?"55300-55399:80"
|
3
THESDZ 2022-07-18 10:51:46 +08:00
应该不支持吧
根据你的目的,个人的建议是 起 5 个 不同的 services nginx1~nginx5,分别绑定不同的端口。 |
4
raw0xff OP @ruidoBlanco 试了,不行
@THESDZ 需要的不知五个,基本是五个一组,需要七八个组。不能 scale 的话会很麻烦。 现在的问题应该是他不是挨个自动分配端口启动,而是一次性启动,那么每次启动到第二个就会端口冲突,导致每次执行 up 只能启动一个。 |
6
raw0xff OP @THESDZ 那 scale 只能扩容不固定端口的容器?端口是可以设置范围的,是我是用的姿势不对吗?
|
7
THESDZ 2022-07-18 17:21:45 +08:00
@raw0xff #6 不通过 docker service scale 去做,写一个 shell 脚本,根据传入的 参数(副本数),伸缩 serivce
例如 传入 3 则将 nginx_4,nginx_5... docker scale 到 0 nginx_1,nginx_2,nginx_3 scale 到 1 |
9
ruidoBlanco 2022-07-19 08:00:01 +08:00
|