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

如何在Docker自定义网络中配置指向本地主机的host-network DNS映射

解决Docker自定义网络中访问本地SSH隧道端口的问题

核心原因

你之前尝试的extra_hosts: - "host.docker.internal:host-gateway"无效,是因为host-gateway指向的是主机物理网卡的IP,而你的SSH隧道仅绑定在本地回环(lo,127.0.0.1)上,主机的外部IP无法访问仅绑定在lo的端口。

可行解决方案

方案1:修改SSH隧道绑定地址(最简单)

将SSH隧道的本地绑定IP从127.0.0.1改为0.0.0.0,让端口开放在主机的所有IP上,包括Docker网关能访问的地址。

然后在你的docker-compose.yml中添加如下配置:

version: '3.8'
networks:
  customnet:
    driver: bridge

services:
  your-app:
    image: your-app-image
    networks:
      - customnet
    extra_hosts:
      - "host-network:host-gateway" # 将host-network映射到主机网关IP
    # 你的其他应用配置

此时容器内的host-network会解析到主机的网关IP,直接就能访问SSH隧道暴露的端口(比如MongoDB的27017)。

方案2:端口转发+自定义DNS映射(不修改SSH隧道)

如果不想修改SSH隧道的绑定地址,可在主机上用socat做端口转发,将Docker网关IP的端口转发到lo的隧道端口:

# 转发MongoDB端口(27017)
socat TCP-LISTEN:27017,bind=172.17.0.1,fork TCP:127.0.0.1:27017
# 转发Postgres端口(5432)同理
socat TCP-LISTEN:5432,bind=172.17.0.1,fork TCP:127.0.0.1:5432

注:172.17.0.1是Docker默认网桥的网关IP,若你的自定义网络网关不同,可通过docker network inspect customnet查看Gateway字段获取。

之后在docker-compose.yml中添加映射:

version: '3.8'
networks:
  customnet:
    driver: bridge

services:
  your-app:
    image: your-app-image
    networks:
      - customnet
    extra_hosts:
      - "host-network:172.17.0.1" # 替换为你的Docker网关IP
    # 你的其他应用配置

方案3:启用Docker的host.docker.internal(Linux专属配置)

Linux下Docker默认不支持host.docker.internal,需先修改Docker daemon配置:

  1. 编辑/etc/docker/daemon.json(不存在则新建):
{
  "extra_hosts": ["host.docker.internal:172.17.0.1"]
}
  1. 重启Docker服务:
systemctl restart docker

之后在docker-compose.yml中直接使用自定义映射:

version: '3.8'
networks:
  customnet:
    driver: bridge

services:
  your-app:
    image: your-app-image
    networks:
      - customnet
    extra_hosts:
      - "host-network:host.docker.internal"
    # 你的其他应用配置

此方案同样需要配合SSH隧道绑定0.0.0.0,或用socat转发lo端口。

关键提醒

  • 绝对不需要使用--net=host,自定义网络+extra_hosts的组合完全能满足需求,还能避免端口冲突。
  • 如果你的SSH隧道需要严格绑定lo(仅主机本地访问),方案2是最优选择,通过转发实现容器的间接访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 00:34:58