
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 |