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

如何从Docker容器内访问解析到127.0.0.1的域名?

解决Docker容器访问宿主机自定义域名的问题

你遇到的核心问题是:容器内解析local.dev.com到127.0.0.1时,这个IP指向的是容器自身而非宿主机,所以会出现ECONNREFUSED错误。以下是几种可行的解决方法:

方法1:启动容器时添加宿主机域名映射(推荐)

Docker 20.10及以上版本支持host-gateway特殊名称,自动指向宿主机的网关IP(即容器能访问到的宿主机IP)。启动容器时添加--add-host参数:

docker run --add-host local.dev.com:host-gateway [你的容器参数]

这样容器内解析local.dev.com时就会指向宿主机,而非容器自身的127.0.0.1。

方法2:手动指定宿主机IP到容器hosts

如果你的Docker版本较低,不支持host-gateway,可以先找到宿主机在Docker网桥的IP(通常是172.17.0.1,可通过ip addr show docker0查看),然后:

  • 启动容器时添加映射:
docker run --add-host local.dev.com:172.17.0.1 [你的容器参数]
  • 或者进入运行中的容器修改/etc/hosts文件,添加一行:
172.17.0.1 local.dev.com

方法3:确保宿主机服务监听正确地址

如果宿主机上的Node.js服务仅监听127.0.0.1,即使容器能访问宿主机IP也会连接失败。需要修改服务的监听地址为0.0.0.0,这样服务会监听宿主机的所有网络接口:

// 修改Node.js的listen代码
app.listen(2019, '0.0.0.0', () => {
  console.log('服务运行在0.0.0.0:2019');
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 09:15:39