🚀 Запуск контейнера с CoreDNS

Следуйте этим простым шагам, и у вас всё заработает в кратчайшие сроки!

1. Создание папки для контейнера

Создаём папку для контейнера и переходим в неё:

mkdir -p ./data/coredns && cd $_

2. Настройка конфигурации CoreDNS

Создаём файл docker-compose.yml и записываем в него содержимое:

version: '3.1'
services:
  coredns:
    image: coredns/coredns
    container_name: ns1
    restart: on-failure
    command: -conf /etc/coredns/data/corefile
    expose:
      - '53'
      - '53/udp'
    ports:
      - '53:53'
      - '53:53/udp'
    volumes:
      - './data:/etc/coredns/data/'

3. Создание директории для конфигурации CoreDNS

Создаём директорию для хранения конфигурации CoreDNS:

mkdir -p data && cd $_

4. Настройка файла corefile

Создаём файл corefile, где будет прописано правило для вашего домена:

example.com:53 {
    file /etc/coredns/data/example.db
    transfer {
      to *
    }
    log
    errors
    health
    whoami
    any
    cache
}

5. Создание базы данных для домена

Теперь создадим файл example.db, который будет базой данных для вашего домена:

@                     IN      SOA     ns1.example.com. root.example.com. (
                                      XXXXXXXXXX   ; Serial
                                      7200         ; Refresh
                                      3600         ; Retry
                                      1209600      ; Expire
                                      180 )        ; Minimum TTL
@             1800    IN      NS      ns1.example.com.
@             1800    IN      NS      ns2.example.com.
ns1           1800    IN      A       10.101.101.11
ns2           1800    IN      A       10.101.101.12
www           1800    IN      A       10.101.101.11
@             1800    IN      A       10.101.101.11
server_name   1800    IN      A       10.101.101.11
*.server_name 1800    IN      A       10.101.101.11

Важно: Поле Serial имеет следующий формат: YYYYMMDDNN, где:

  • YYYY — год
  • MM — месяц
  • DD — день
  • NN — версия изменений, обычно начинается с 01.

Не забудьте заменить:

  • example.com на ваше собственное доменное имя в конфигурациях и в названиях файлов.
  • 10.101.101.11, 10.101.101.12 на ваши реальные IP-адреса.

6. Запуск CoreDNS

Теперь ваш контейнер с CoreDNS полностью готов к использованию! Запустите его с помощью команды:

docker-compose up -d

🏗️ Настройка Secondary CoreDNS

Если хотите запустить Secondary CoreDNS, создайте на другом сервере папку для контейнера и перейдите в неё:

mkdir -p ./data/coredns && cd $_

1. Настройка конфигурации Secondary CoreDNS

Создаём файл docker-compose.yml и записываем в него содержимое:

version: '3.1'
services:
  coredns:
    image: coredns/coredns
    container_name: ns2
    restart: unless-stopped
    command: -conf /etc/coredns/corefile
    expose:
      - '53'
      - '53/udp'
    ports:
      - '53:53'
      - '53:53/udp'
      - '9153:9153'
    volumes:
      - './corefile:/etc/coredns/corefile'

2. Настройка файла corefile для Secondary

Создаём файл corefile, где будет прописано правило для вашего домена:

example.com:53 {
    secondary {
        transfer from 10.101.101.12
    }
    log
    errors
    health
    whoami
    any
    cache
}

Не забудьте заменить:

  • example.com на ваше собственное доменное имя в конфигурациях и в названиях файлов.
  • 10.101.101.11, 10.101.101.12 на ваши реальные IP-адреса.

3. Запуск Secondary CoreDNS

Теперь ваш контейнер с Secondary CoreDNS полностью готов к использованию! Запустите его с помощью команды:

docker-compose up -d

И вот, с помощью этих шагов, вы успешно настроили как основной, так и вторичный экземпляр CoreDNS! 🌐