LINUX

Come configurare il server DNS con Docker Container

configurare il contenitore docker del server dns

Un Dockerfile viene utilizzato per creare un’immagine del contenitore Docker, questo verrà utilizzato per creare il server DNS. Un modo semplice per configurare un server DNS di base con Docker consiste nell’utilizzare il server DNS BIND insieme all’interfaccia Webmin. In questo tutorial tratteremo come distribuire il server DNS utilizzando il contenitore docker.

BIND è un software open source che implementa i protocolli DNS (Domain Name System) per Internet. È un’implementazione di riferimento di questi protocolli, ma è anche un software di produzione, adatto per l’uso in applicazioni ad alto volume e ad alta affidabilità.

Le build automatiche delle immagini sono prontamente disponibili su Hub Docker ed è il metodo di installazione consigliato

docker pull sameersbn/bind:9.9.5-20170129

In alternativa, puoi creare tu stesso l’immagine.

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

Per avviare un server DNS BIND, eseguire:

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

In alternativa, puoi utilizzare il file docker-compose.yml di esempio per avviare il contenitore utilizzando Docker Compose.

Quando il contenitore viene avviato, viene avviato anche il servizio Webmin ed è accessibile dal browser Web all’indirizzo http://localhost:10000. Accedi a Webmin con il nome utente e la password di root. Specifica –env ROOT_PASSWORD=secretpassword nel comando docker run per impostare una password a tua scelta.

L’avvio di Webmin può essere disabilitato aggiungendo –env WEBMIN_ENABLED=false al comando docker run. Si noti che il parametro ROOT_PASSWORD non ha effetto quando l’avvio di Webmin è disabilitato.

Test del server DNS

È possibile personalizzare il comando per avviare il server BIND specificando gli argomenti a named nel comando docker run. Ad esempio, il seguente comando stampa il menu di aiuto del comando indicato:

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

Affinché BIND mantenga il proprio stato durante l’arresto e l’avvio del contenitore, è necessario montare un volume in /data.

Gli utenti di SELinux dovrebbero aggiornare il contesto di sicurezza del punto di montaggio dell’host in modo che funzioni bene con Docker:

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

Implementazione e manutenzione

Per aggiornare l’immagine Docker DNS BIND

Scarica l’immagine Docker aggiornata:

docker pull sameersbn/bind:9.9.5-20170129

Arresta l’immagine attualmente in esecuzione:

docker stop bind

Rimuovere il contenitore bloccato

docker rm -v bind

Eseguire l’immagine aggiornata

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

Apri il tuo browser Web su https://172.17.42.1:10000 e accedi a webmin come utente root e password SecretPassword. Questo ti darà la possibilità di configurare il tuo server DNS utilizzando l’interfaccia utente di Webmin.

Conclusione

Per scopi di debug e manutenzione, potresti voler accedere alla shell del contenitore. Se utilizzi Docker versione 1.3.0 o successiva, puoi accedere a una shell del contenitore in esecuzione avviando bash utilizzando docker exec:

docker exec -it bind bash

Esegue il server DNS Docker.

Related Articles

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Back to top button
Close