小编Red*_*ddy的帖子

在 Docker 容器中使用主机 DNS 解析

我认为这是 SO Network 中广泛讨论的问题之一。大多数解决方案要么是过时的,要么是最新的 Ubuntu (21.04)/Systemd 更改的陈旧建议。

问题:Docker 容器不支持来自主机网络的 VPN 更改。

尝试的解决方案:

  1. Docker 守护进程支持自定义 dns 解析。
    {
        "dns": ["172.17.0.1", "8.8.8.8", "8.8.4.4"]
    }
Run Code Online (Sandbox Code Playgroud)

此解决方案不适用于 Systemd DNS 解析。

resolvectl status

Link 7 (docker0)
Current Scopes: none
     Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported

Link 92 (tun0)
    Current Scopes: DNS
         Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 1.1.1.1
       DNS Servers: 1.1.1.1
        DNS Domain: consul vpn.net
Run Code Online (Sandbox Code Playgroud)
  1. 安装并绑定它的dnsmasq来docker0 interface/etc/dnsmasq.conf
interface=docker0
listen-address=172.17.0.1
Run Code Online (Sandbox Code Playgroud)

如果我使用bind-dynamic,它会失败并且bind-dynamic and bind-interfaces不能一起使用。我不得不从bind-interfaces正在设置的地方挖掘

终于在这里找到了: …

network-manager dns docker systemd-resolved

5
推荐指数
2
解决办法
462
查看次数

标签 统计

dns ×1

docker ×1

network-manager ×1

systemd-resolved ×1