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
相关产品推荐
相关产品推荐

