如何更改 docker-compose 中的服务正在使用的 DNS 服务器?

How to change the DNS server that is being used by the services in docker-compose?

更新: 出于某种原因,只需将 dns: 1.1.1.1 添加到服务下的 docker-compose.yml 即可,但当我尝试时它不起作用我问了这个问题。 已解决

我的主机使用 PiHole 作为 DNS 服务器,因此所有 docker 容器都继承了它。我有一个应用程序会生成大量不需要通过 PiHole 过滤的 DNS 流量,所以我想让该应用程序使用 1.1.1.1 DNS 服务器。
我知道有一个 dns 选项可以应用于每个服务,但我发现它需要将 network_mode 设置为 "bridge",它使用默认的 bridge 网络。但是 我希望我的容器使用自定义 DNS 并且仍然位于单独的隔离网络 (与 default 网络相同) 而不是默认 bridge 网络 所以我可能有多个应用程序(docker-compose.yml 文件)使用自定义 DNS 服务器,同时彼此隔离(就像它们通常是)。如何实现?

您可以为 docker-compose.yaml 中的每个服务添加自定义 dns,方法是添加

version: 2
services:
 application:
  dns:
   - <dns_server> #example: 8.8.8.8

最后一次尝试是在 2 年前使用 version: 2