快速解决

快速解决

即使我可以从 Docker 容器成功 ping 主机(即docker run busybox ping -c 1 216.58.207.206),但涉及 DNS 查找的请求会导致超时(例如docker run nslookup google.com)。

我看过来自这个 NPM Github 问题,即编辑/etc/hosts、来自不同网络的连接以及重新启动机器,但均无成功。

Docker 到 Docker 的连接问题似乎 常见的但是,我的问题与 Docker 到 DNS 连接有关,并且与这些问题不同(即使错误消息相似)。

我也尝试过Robin Winslow 修复 Docker 的网络 DNS 配置但是,明确指定本地或全局 DNS 服务器失败。

$ docker run --dns <local DNS IP> busybox nslookup google.com
>>> nslookup: write to <local DNS IP>: No route to host
;; connection timed out; no servers could be reached

$ docker run --dns 8.8.8.8 busybox nslookup google.com
>>> nslookup: write to '8.8.8.8': No route to host
;; connection timed out; no servers could be reached

答案1

快速解决

对于遇到 Fedora 31/32 Docker 问题的人,我建议遵循Fedora Magazine 关于 Docker 和 Fedora 32 的指南

对我个人而言,该问题是由于防火墙阻止了 docker 连接而引起的,以下命令可以修复该问题:

sudo firewall-cmd --permanent --zone=trusted --add-interface=docker0
sudo firewall-cmd --reload # reload the firewall rules

迁移至 Podman

Docker 需要一个 root 守护进程,它会创建一个安全 忧虑。可以通过切换到波德曼并将其与与Docker相同的命令

podman run --dns 8.8.8.8 busybox nslookup google.com

相关内容