如何为 Mac 配置 docker 在 Docker 桌面中使用的 DNS 服务器?

How do I configure which DNS server docker uses in Docker Desktop for Mac?

Docker 桌面 Mac 的内置 DNS 服务器真的很慢,所以我想默认使用不同的 DNS 服务器.我知道我可以在 运行 docker 命令时添加 --dns=...,但我想要一种为所有容器设置默认 DNS 服务器的方法,以避免必须为每个单独指定 DNS 服务器容器。

如何为 Mac Docker 上的所有容器设置默认 DNS 服务器?

在 Docker for Mac 的当前版本中,您可以转到 Whale Icon -> Preferences -> Daemon -> Advanced 并使用 daemon.json 配置。如果您的配置当前为空,这将添加您自己的 DNS 设置,其中包含两个条目:

{
  "dns": ["8.8.8.8", "192.168.0.1"]
}

如果此处已有内容,请将 "dns" 的条目添加到 json。请参阅 daemon configuration documentation 以了解您可以在此处添加的其他选项。

作为一个班轮:

sed -i '$s/}/,\n{"dns": ["8.8.8.8", "192.168.0.1"]}}/' ~/.docker/daemon.json

(对于 MacOS,守护程序配置在 ~/.docker/daemon.json 中)。