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

Docker部署MongoDB容器内部可访问但MongoDB Compass连接失败求助

Docker运行MongoDB宿主机无法连接解决方案

getaddrinfo ENOTFOUND mongo.ks.local 报错的核心原因是:Docker内部的DNS服务仅在容器专属网络中生效,宿主机默认无法将mongo.ks.local这个容器名解析为正确的IP地址,因此无法通过该域名从外部访问容器内服务。

你可以根据需求选择以下任意一种方案解决:

  • 方案1:直接使用localhost连接(最简单)
    你的docker-compose已经配置了27017端口映射到宿主机,直接在MongoDB Compass中使用以下连接串即可:

    mongodb://<替换为你的用户名>:<替换为你的密码>@localhost:27017/?authSource=admin
    

    注意必须加authSource=admin参数,因为MongoDB初始化的root用户默认存储在admin库中,不加该参数会默认从test库校验用户,会触发认证失败报错。

  • 方案2:配置本地hosts文件实现域名解析
    如果你需要用mongo.ks.local域名连接,可以修改宿主机的hosts文件,手动绑定域名与本地IP:

    1. Windows系统编辑C:\Windows\System32\drivers\etc\hosts文件,Mac/Linux系统编辑/etc/hosts文件
    2. 在文件末尾新增一行:
    127.0.0.1 mongo.ks.local
    

    保存后即可正常使用mongo.ks.local作为连接地址访问MongoDB服务。

  • 方案3:端口占用排查
    如果以上方案执行后仍然无法连接,先执行docker ps确认mongo.ks.local容器处于运行状态,再检查宿主机27017端口是否被其他程序占用:

    • Windows系统执行命令:netstat -ano | findstr "27017"
    • Mac/Linux系统执行命令:lsof -i:27017
      如果查询到有其他进程占用27017端口,可以终止对应进程,或者修改docker-compose的端口映射配置,例如改为- 27018:27017,重启容器后使用对应端口连接即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 17:06:04