Следуйте этим простым шагам, и у вас всё заработает в кратчайшие сроки!
Создаём папку для контейнера и переходим в неё:
mkdir -p ./data/coredns && cd $_
Создаём файл 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/'
Создаём директорию для хранения конфигурации CoreDNS:
mkdir -p data && cd $_
Создаём файл corefile
, где будет прописано правило для вашего домена:
example.com:53 {
file /etc/coredns/data/example.db
transfer {
to *
}
log
errors
health
whoami
any
cache
}
Теперь создадим файл 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-адреса.
Теперь ваш контейнер с CoreDNS полностью готов к использованию! Запустите его с помощью команды:
docker-compose up -d
Если хотите запустить Secondary CoreDNS, создайте на другом сервере папку для контейнера и перейдите в неё:
mkdir -p ./data/coredns && cd $_
Создаём файл 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'
Создаём файл 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-адреса.
Теперь ваш контейнер с Secondary CoreDNS полностью готов к использованию! Запустите его с помощью команды:
docker-compose up -d
И вот, с помощью этих шагов, вы успешно настроили как основной, так и вторичный экземпляр CoreDNS! 🌐