我们为什么需要dns服务器呢?当然是为了后面网关!我们需通过域名来分发请求到不同的docker容器上。笔者不推荐通过端口号、二级路由来区分,这样真的很混乱,也不好记忆。
1、bind的安装
在test-node-1上执行
docker run -d \
--name dns \
--restart=always \
-p 53:53/tcp -p 53:53/udp \
-p 10000:10000/tcp \
-v /data/dns:/data \
sameersbn/bind:9.16.1-20200524
2、验证
等待安装完成后。访问https://172.16.113.9:10000/
。看清楚哦,这个地址是https的。因为这个证书是无效的,所以在高版本的谷歌浏览器中访问会出现阻断提示你的连接不是专用连接
。甚至都没有继续访问的按钮,这个时候可以在键盘盲打thisisunsafe
就可以了。
默认的账号密码为root/password
,登录后:
3、端口占用
如果出现容器启动不起来,不要慌张,我们来排查一下。先用命令查看一下:
lsof -i -P -n | grep LISTEN
执行完成后会列出端口占用情况,看看有没有53
端口被用掉了,dns服务的默认端口是53
。
⚠️Centos8可能默认会自带dnsmasq
,这个程序会占用53
端口,因此我们来关闭它:
# 禁止开机自启
systemctl disable dnsmasq
# 全部杀掉
killall dnsmasq
然后重新启动容器。
4、语言修改
安装完成后默认是英文的,我们可以把它改为中文,按下图操作即可:
5、配置修改
在左侧菜单中点击BIND DNS Server
,然后点击默认区域
:
在下图红框内填入any即可,并且都选中列出的
:
然后点击保存
。
然后点击Apply configuration
,使配置生效。
6、小结
dns服务器这里采用的是bind。现在我们已经安装完成,等到后面应用部署的时候,我们就需要用到它的域名解析能力,后续我们会来再配置域名。