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

运行ObserveRTC示例时遇Mediasoup错误:getaddrinfo ENOTFOUND host.docker.internal

解决host.docker.internal DNS解析失败问题

问题原因

host.docker.internal 是Docker Desktop(Windows/macOS)自动配置的域名,用于容器访问宿主机,但Linux环境下的Docker默认不会自动配置该域名,因此容器内的应用无法解析这个地址,出现ENOTFOUND错误。

解决方案

方案1:修改docker-compose.yml添加额外主机映射

在你的docker-compose.yml中,找到MediaSoup相关的服务配置块,添加extra_hosts字段,将host.docker.internal映射到你的宿主机IP(192.168.60.79):

services:
  # 对应MediaSoup相关服务配置
  mediasoup:
    # 保留原有配置...
    extra_hosts:
      - "host.docker.internal:192.168.60.79"

修改完成后,重新执行启动命令:

SFU_ANNOUNCED_IP="192.168.60.79" docker-compose up

方案2:全局配置Docker守护进程支持该域名

如果需要所有容器都能解析host.docker.internal,可以修改Docker守护进程配置:

  1. 编辑(或创建)/etc/docker/daemon.json文件:
{
  "extra_hosts": ["host.docker.internal:192.168.60.79"]
}
  1. 重启Docker服务生效:
sudo systemctl restart docker

方案3:临时手动修改容器hosts(重启失效,仅测试用)

如果只是临时验证,可以进入运行中的MediaSoup容器,手动添加hosts条目:

# 替换<container-id>为你的MediaSoup容器ID
docker exec -it <container-id> /bin/bash
echo "192.168.60.79 host.docker.internal" >> /etc/hosts

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 00:55:31