Установка DNS-сервера в docker-контейнере
May 18, 2017 16:24 · 226 words · 2 minute read
Ранее мы уже рассматривали процесс настройки DNS-сервера с динамическим обновлением зон в операционной системе Ubuntu 16.04, однако этот вариант не самый оптимальный с точки зрения использования времени.
Давайте разберемся с очень простым и быстрым способом базовой установки DNS-сервера (bind9 + webmin) с помощью docker-контейнера!
Считаем, что docker
уже установлен и корректно работает. Предлагаемый образ доступен на Docker Hub и скачать его можно с помощью команды:
docker pull sameersbn/bind:9.9.5-20170129
Альтернативный вариант — самостоятельная сборка образа из Dockerfile, присутствующего на github:
docker build -t sameersbn/bind github.com/sameersbn/docker-bind
Для запуска контейнера используется команда:
docker run --name bind -d --restart=always \
--publish 53:53/tcp --publish 53:53/udp --publish 10000:10000/tcp \
--volume /srv/docker/bind:/data \
sameersbn/bind:9.9.5-20170129
При запуске контейнера также стартует сервис Webmin, который будет доступен в браузере по адресу http://localhost:10000. Для авторизации по умолчанию используется логин root
и пароль password
. Есть возможность самостоятельно задать пароль при старте контейнера, добавив параметр --env ROOT_PASSWORD=secretpassword
.
Если же сервис Webmin не нужен, его также можно отключить при старте контейнера с помощью параметра --env WEBMIN_ENABLED=false
.
Конфигурационные файлы DNS-сервера на хост-машине будут расположены в каталоге /srv/docker/bind
. Пользователям SELinux необходимо также выполнить команду:
mkdir -p /srv/docker/bind
и
chcon -Rt svirt_sandbox_file_t /srv/docker/bind
Для обновления контейнера с DNS-сервером необходимо скачать новый образ:
docker pull sameersbn/bind:9.9.5-20170129
Остановить работающий docker-контейнер и удалить его:
docker rm -f bind
Запустить новый контейнер из свежего образа с нужными опциями:
docker run --name bind -d \
[OPTIONS] \
sameersbn/bind:9.9.5-20170129