LINUX

Cómo configurar el servidor DNS con Docker Container

configurar el contenedor docker del servidor dns

Se usa un Dockerfile para crear una imagen de contenedor de Docker, que se usará para crear el servidor DNS. Una manera fácil de configurar un servidor DNS básico con Docker es usar el servidor DNS BIND junto con la interfaz de Webmin. En este tutorial, cubriremos cómo implementar un servidor DNS usando un contenedor docker.

BIND es un software de código abierto que implementa los protocolos del Sistema de nombres de dominio (DNS) para Internet. Es una implementación de referencia de estos protocolos, pero también es un software de producción, adecuado para su uso en aplicaciones de alto volumen y alta confiabilidad.

Las compilaciones automáticas de imágenes están disponibles en Dockerhub y es el método de instalación recomendado

docker pull sameersbn/bind:9.9.5-20170129

Alternativamente, puede construir la imagen usted mismo.

docker build -t sameersbn/bind github.com/sameersbn/docker-bind

Para iniciar un servidor BIND DNS, ejecute:

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

Como alternativa, puede usar el archivo docker-compose.yml de muestra para iniciar el contenedor usando Docker Compose.

Cuando se inicia el contenedor, también se inicia el servicio Webmin y se puede acceder a él desde el navegador web en http://localhost:10000. Inicie sesión en Webmin con el nombre de usuario y la contraseña raíz. Especifique –env ROOT_PASSWORD=secretpassword en el comando de ejecución de la ventana acoplable para establecer una contraseña de su elección.

El lanzamiento de Webmin se puede deshabilitar agregando –env WEBMIN_ENABLED=false al comando de ejecución de la ventana acoplable. Tenga en cuenta que el parámetro ROOT_PASSWORD no tiene efecto cuando el inicio de Webmin está deshabilitado.

Pruebas de servidor DNS

Puede personalizar el comando para iniciar el servidor BIND especificando argumentos a named en el comando docker run. Por ejemplo, el siguiente comando imprime el menú de ayuda del comando mencionado:

docker run --name bind -it --rm 
--publish 53:53/tcp --publish 53:53/udp --publish 10000:10000/tcp 
--volume /srv/docker/bind:/data 
sameersbn/bind:9.9.5-20170129 -h

Para que BIND conserve su estado durante los apagados y arranques del contenedor, debe montar un volumen en /data.

Los usuarios de SELinux deben actualizar el contexto de seguridad del punto de montaje del host para que funcione bien con Docker:

mkdir -p /srv/docker/bind
chcon -Rt svirt_sandbox_file_t /srv/docker/bind

Implementación y mantenimiento

Para actualizar la imagen de BIND DNS Docker

Descargue la imagen de Docker actualizada:

docker pull sameersbn/bind:9.9.5-20170129

Detenga la imagen que se está ejecutando actualmente:

docker stop bind

Retire el contenedor detenido

docker rm -v bind

Ejecutar la imagen actualizada

docker run -name bind -d  [OPTIONS]  sameersbn/bind:9.9.5-20170129

Abra su navegador web en https://172.17.42.1:10000 e inicie sesión en webmin como usuario raíz y contraseña SecretPassword. Esto le dará la posibilidad de configurar su servidor DNS utilizando la interfaz de usuario de Webmin.

Conclusión

Para fines de depuración y mantenimiento, es posible que desee acceder al shell del contenedor. Si está utilizando Docker versión 1.3.0 o posterior, puede acceder a un shell de contenedor en ejecución iniciando bash usando docker exec:

docker exec -it bind bash

Ejecuta el servidor Docker DNS.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar