MongoDB/pymongo 错误:DNS 响应不包含问题的答案...IN SRV

问题描述 投票:0回答:1

我有一个在 K8s 中运行的 python 脚本,运行良好。尝试在 docker 容器中本地运行代码,当它尝试连接到 MongoDB 时,我收到以下错误

pymongo.errors.ConfigurationError: The DNS response does not contain an answer to the question: _mongodb._tcp.cluster_name.abc123.mongodb.net IN SRV

连接字符串

mongodb+srv://username:password@cluster_name.abc123.mongodb.net
来自 Mongo UI“连接”指令,我根据产品库中保存的秘密验证了这一点。

当我跑步时

dig srv _mongodb._tcp.cluster_name.abc123.mongodb.net

我得到 3 个答案,每个分片 1 个。不过我觉得这样也好。

当我使用 https://toolbox.googleapps.com/apps/dig/#ANY/ (任何,不是 A 记录)时,它也会返回上述 3 个答案。一条记录没有返回任何答案。

据我了解,这表明这是我自己的路由器/ISP 无法解析 DNS 记录的问题?是这样吗?我该如何诊断并修复它以便我可以在本地运行此代码?

编辑:在 docker 之外运行脚本是可行的。在容器内运行它会产生上述情况。

python mongodb docker dns
1个回答
0
投票

我认为您容器内的 DNS 解析器有问题。

您需要通过添加/更新来调整 /etc/docker/daemon.json 文件

"dns": ["8.8.8.8"]

然后重新启动你的docker引擎。

您可以在这里找到更详细的答案:https://stackoverflow.com/a/62988037/23835516

© www.soinside.com 2019 - 2024. All rights reserved.