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

Docker-Compose随机分配端口问题:如何让服务仅通过API网关通信

解决Docker Compose服务随机暴露外部端口的问题

你的问题出在api.products服务的ports配置上:ports: - "80"这个写法会让Docker自动把容器的80端口随机映射到宿主机的一个外部端口,这正是你不想看到的。

要让api.products只通过API网关通信、不暴露外部端口,直接删掉api.products下的整个ports配置区块就行。

修改后的完整Compose配置如下:

services:
    api.gateway:
        build:
          context: .
          dockerfile: API.Gateway/Dockerfile
        ports:
            - "80:80"

    api.products:
        build:
          context: .
          dockerfile: API.Products/Dockerfile

补充说明

Docker Compose默认会为你的项目创建一个专属的内部网络,所有服务都会加入这个网络。在这个网络里,api.gateway可以直接通过服务名api.products访问到对应的容器(比如用http://api.products:80调用接口),完全不需要给api.products配置任何外部端口映射。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 15:24:39