【问题标题】:How to change the DNS server that is being used by the services in docker-compose?如何更改 docker-compose 中的服务正在使用的 DNS 服务器?
【发布时间】:2022-02-05 06:13:29
【问题描述】:

更新:出于某种原因,只需将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 网络 em>所以我可能有多个应用程序(docker-compose.yml 文件)使用自定义 DNS 服务器,同时彼此隔离(就像它们通常一样)。如何实现?

【问题讨论】:

  • network_mode: bridge 通常是默认模式;在 Docker 文档中有些令人困惑的语言中,Compose 提供的 default 网络是“用户定义的桥接网络”。您应该能够使用其他正常或默认网络设置来设置容器的 dns: 服务器。

标签: docker docker-compose dns docker-networking


【解决方案1】:

您可以通过添加为 docker-compose.yaml 中的每个服务添加自定义 dns

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

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

【讨论】:

    猜你喜欢
    • 2017-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-06
    • 2017-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多