
容器网络问题经常表现为“本机能访问、容器里不能访问”或“端口已经映射却超时”。关键是分清请求发生在哪个网络命名空间。
1. 确认连接发起位置
先判断客户端在同一 Compose 网络、宿主机还是公网。不同位置使用的地址和端口不同。
2. 容器间优先使用服务名
同一网络内通过服务名和容器端口访问,不要写 localhost。localhost 在容器中只指向容器自身。
3. 检查应用监听地址
应用若只监听 127.0.0.1,即使端口映射正确也无法从外部连接。容器服务通常应监听 0.0.0.0。
4. 逐层验证 DNS、路由和防火墙
在发起请求的环境中测试域名解析和端口连通,再检查宿主机防火墙、云安全组和反向代理。
常见误区
- 在容器中用 localhost 访问另一个服务
- 混淆容器端口与宿主机端口
- 应用只监听回环地址
- 一次同时修改多层网络配置
执行检查清单
- 发起位置明确
- 服务名解析正常
- 监听地址正确
- 安全组和防火墙放行
总结
网络排错应从请求发起点逐跳验证。只要分清每一跳的地址和端口,问题通常很快就能定位。