Как в docker compose установить свой dns?

В Docker Compose вы можете настроить пользовательский DNS для ваших контейнеров с помощью конфигурационного файла docker-compose.yml. Для этого вам нужно добавить настройки DNS в раздел services, где описаны ваши сервисы.

Во-первых, вам необходимо добавить объявление сети контейнера networks. Ниже приведен пример объявления сети:

version: "3"
services:
  app:
    build:
      context: .
    networks:
      - mynetwork
networks:
  mynetwork:

Затем, вы должны добавить настройки DNS в ваш контейнер. Для этого добавьте параметр dns с IP-адресом вашего пользовательского DNS-сервера в разделе services. Ниже приведен пример:

version: "3"
services:
  app:
    build:
      context: .
    networks:
      - mynetwork
    dns:
      - 8.8.8.8
      - 8.8.4.4
networks:
  mynetwork:

В этом примере мы использовали публичные DNS-серверы Google (8.8.8.8 и 8.8.4.4), но вы можете использовать свой собственный пользовательский DNS-сервер.

Вы можете добавить сколько угодно DNS-серверов, разделяя их переносом строки или запятыми.

Кроме того, вместо указания IP-адреса DNS-сервера, вы можете использовать DNS-имя в качестве параметра dns. Например:

version: "3"
services:
  app:
    build:
      context: .
    networks:
      - mynetwork
    dns:
      - mydnsserver.example.com
networks:
  mynetwork:

Теперь ваш контейнер будет использовать указанный вами пользовательский DNS-сервер при разрешении имен.

Не забудьте внести соответствующие изменения в ваш конфигурационный файл docker-compose.yml.