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

Docker-Compose端口映射后容器子网IP与网关不符问题咨询

为什么端口映射的IP和容器网关/IP不在同一子网?

核心原因:端口映射与容器网络是完全独立的两个概念

1. 端口映射的127.0.0.101属于宿主机网络

你配置的"127.0.0.101:80:80"是宿主机端口转发规则:意思是把宿主机回环网卡(lo)上绑定的127.0.0.101这个IP的80端口,转发到容器内部的80端口。这个IP完全属于宿主机的本地网络,和容器所在的私有网络没有直接归属关系。

2. 容器的网关/IP属于Docker自定义桥接网络

你定义的our_network是Docker的自定义桥接网络,这类网络会自动分配一个私有子网(比如这里的172.31.0.0/16):

  • 容器IP172.31.0.2是Docker从这个子网里分配给容器的专属地址;
  • 网关172.31.0.1是Docker在宿主机上创建的虚拟桥接网卡(类似br-xxx命名)的IP,它是容器与外部(宿主机、其他网络)通信的转发节点。

3. 两者的关联仅在于流量转发,而非子网归属

端口映射本质是通过宿主机的iptables规则实现的流量转发——相当于在宿主机的127.0.0.101:80和容器的172.31.0.2:80之间建立了一条“流量通道”,但这并不会改变两个IP所在的子网划分。容器网络的核心作用是让同一网络内的容器互相通信(比如你配置的project1.local别名就是用于容器间访问),而端口映射是给外部(包括宿主机)提供访问容器的入口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 01:37:25