两个容器不在同一个 docker-compose如何实现网络互通

让容器里 Nginx 把请求发到宿主机上监听的那个端口

① Docker Desktop(Mac / Windows)

宿主机在容器里固定叫 host.docker.internal,直接用:

proxy_pass http://host.docker.internal:8080;

无需改网络,也无需知道真实 IP

② Linux 原生 Docker(最常用)

宿主机 IP 通常是 172.17.0.1(默认 bridge 网关)
在容器里执行:

ip route | awk 'NR==1 {print $3}'

或者 把你的 compose 网络改成 network_mode: "host",此时容器与宿主机共用网络,可直接写 127.0.0.1

services:
  prod:
    network_mode: host   # Linux only
proxy_pass http://127.0.0.1:8080/gpAdmin/;

③ 已知宿主机 LAN IP

如果宿主机在局域网固定 IP,例如 192.168.1.100,且容器网络能路由出去,也可直接写:

proxy_pass http://192.168.1.100:8080;
# 服务器 

标题:两个容器不在同一个 docker-compose如何实现网络互通
作者:admin
地址:http://www.mjdg.store/articles/2025/08/26/1756170022958.html

评论

取消