前面我们在192.168.56.101上有了registry.feedao.com私有的镜像源服务器,并且有了registry.feedao.com/centos-newssh镜像。
今天我们在192.168.56.103上制作DNS服务镜像,当然最好有点bind9的经验。
第一步,配置Hosts,获取docker镜像:
echo "192.168.56.101 registry.feedao.com" >> /etc/hosts
第二步,这里需要注意udp协议,256M是内存大小:
docker run -d -p 127.0.0.1:33306:22 -p 53:53 -p 53:53/udp 256M registry.feedao.com/centos-newssh
第三步:登陆容器
ssh 127.0.0.1 -p 33306
第四步:安装bind9
yum install bind bind-utils -y
第五步:修改配置文件/etc/named.conf,options参看下面:
options { forwarders { 8.8.8.8; 8.8.4.4; }; listen-on port 53 { any; }; listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { any; }; recursion yes; dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; };
在 /etc/named.conf,假设咱们的域名是feedao.com文件中添加
zone "feedao.com" { type master; file "db.feedao.com"; };
第六步:进入/var/named/,添加db.feedao.com,内容如下:
$TTL 604800 @ IN SOA feedao.com. www.feedao.com. ( 3 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS feedao.com. @ IN A 192.168.56.101 registry IN A 192.168.56.101 * IN A 192.168.56.101
第七步:启动named服务:
service named start
第八步: 由于容器里面不能修改dns所在退出容器,修改/etc/resolv.conf:
mv /etc/resolv.conf /etc/resolv.conf.bak echo "nameserver 192.168.56.103" >/etc/resolv.conf
第九步:测试,安装 bind-utils
yum -y install bind-utils
测试:
dig @192.168.56.103 . feedao.com
如果有反应就说明成功了。
第十步:去掉/etc/hosts里面的192.168.56.101 registry.feedao.com测试:
curl registry.feedao.com
会出现跟配置Hosts一样的效果,以后只要把新的机器的dns配置成192.168.56.103就好了。
后记:
这里只是完成了dns服务的安装和使用,写一个Dockerfile就可以制作成镜像了,后面有时间再写个脚本。