You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

docker-compose使用scale参数扩容时所有端口被单个容器占用问题

问题原因

你当前的端口配置写法会让Docker为单个服务实例绑定宿主机25565~25570的全段端口到容器的25565端口,因此第一个启动的容器就占用了所有预留端口,第二个扩容实例没有可用端口,触发端口占用报错。

解决方案

根据你的需求选择对应配置即可:

方案1:从指定端口段为每个扩容实例分配单个固定范围端口

需使用3.2及以上版本的Compose文件,将端口配置改为长格式声明:

...
    ports:
      - target: 25565
        published: 25565-25570
        protocol: tcp
        mode: host
...

修改后先执行docker compose down清理原有占用端口的容器,再执行docker compose up --scale minecraft=2 -d即可实现每个实例分配一个端口段内的宿主机端口。

方案2:自动分配随机宿主机端口

如果不需要固定端口段,可简化端口配置,仅声明容器端口即可:

...
    ports:
      - 25565
...

Docker会自动为每个实例分配互不冲突的高位宿主机端口,可通过docker compose ps或docker compose port <服务名> <容器端口>查询对应映射端口。

内容的提问来源于stack exchange,提问作者Gabe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 08:54:04