前面我们在192.168.56.101上有了registry.linuxidc.com私有的镜像源服务器,并且有了registry.linuxidc.com/CentOS-newssh镜像。
今天我们在192.168.56.103上制作DNS服务镜像,当然最好有点bind9的经验。
第一步,配置Hosts,获取docker镜像:
echo "192.168.56.101 registry.linuxidc.com" >> /etc/hosts
第二步,这里需要注意udp协议,256M是内存大小:
docker run -d -p 127.0.0.1:33306:22 -p 53:53 -p 53:53/udp 256M registry.linuxidc.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,假设咱们的域名是linuxidc.com文件中添加
zone "linuxidc.com" {
type master;
file "db.linuxidc.com";
};
第六步:进入/var/named/,添加db.linuxidc.com,内容如下:
$TTL 604800
@ IN SOA linuxidc.com. (
3 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS linuxidc.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 . linuxidc.com
如果有反应就说明成功了。
第十步:去掉/etc/hosts里面的192.168.56.101 registry.linuxidc.com测试:
curl registry.linuxidc.com
会出现跟配置Hosts一样的效果,以后只要把新的机器的dns配置成192.168.56.103就好了。