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