【问题标题】:DNS problem: dig successful, ping fails (Docker container)DNS 问题:挖掘成功,ping 失败(Docker 容器)
【发布时间】:2021-02-10 12:41:46
【问题描述】:

我在 Docker 容器中运行 Java 应用程序,它试图从 DHL 跟踪 URL https://ecommerceportal.dhl.com/track/ 中抓取一些内容

这一直工作正常,但几天前,它停止工作并出现 UnknownHostException。

从 Docker 容器内部,我无法 ping 主机:

root@4f0f68ab1e9f:/# ping ecommerceportal.dhl.com
ping: ecommerceportal.dhl.com: Name or service not known

但是通过 dig 查询 DNS 是成功的:

root@4f0f68ab1e9f:/# dig ecommerceportal.dhl.com

; <<>> DiG 9.10.3-P4-Debian <<>> ecommerceportal.dhl.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7092
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;ecommerceportal.dhl.com.       IN      A

;; ANSWER SECTION:
ecommerceportal.dhl.com. 21171  IN      CNAME   ecommerceportal.dhl.com.edgekey.net.
ecommerceportal.dhl.com.edgekey.net. 299 IN CNAME e16593.a.akamaiedge.net.
e16593.a.akamaiedge.net. 19     IN      A       184.24.26.220

;; Query time: 25 msec
;; SERVER: 127.0.0.11#53(127.0.0.11)
;; WHEN: Wed Feb 10 12:34:13 UTC 2021
;; MSG SIZE  rcvd: 151

当然,对 IP 184.24.26.220 的 ping 工作正常。

此外,ping 到其他主机也能正常工作,因此容器可以访问互联网。

有人知道出了什么问题吗? 我还尝试在容器的 docker-compose 文件中替换 DNS 服务器,但没有成功。

谢谢,BR, 一月

【问题讨论】:

  • ping 几乎从来都不是一个正确的故障排除工具,但它使用操作系统功能来解析名称,即/etc/nsswitch.conf 中的内容来找出用于解析名称的来源。对面的dig 只做 DNS 查询。

标签: docker dns ping dig unknown-host


【解决方案1】:

感谢@Patrick 的提示。通过尝试host,我发现问题出在路由器中的 DNS 服务器上。重新启动后,DNS 解析再次正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 2011-07-25
    • 1970-01-01
    • 1970-01-01
    • 2012-08-04
    • 1970-01-01
    • 2017-10-26
    相关资源
    最近更新 更多