[Docker二]DNS
2018-12-05 本文已影响0人
LinuxMan_yang
DNS
imageDNS的重要性
- 几乎所有应用都要使用DNS服务,她的重要性不言而喻,DNS的故障经常会导致网络中依赖她的应用的连锁反应,我就曾遇到过k8s集群的coreDNS不断重启,原因就是连接不到上层的DNS,因此建立一个稳定的内部DNS致关重要。
两种实现
- 传统的DNS应用是bind,稳定而高效
- 新生的DNS应用叫dnsmasq,kubernetes也是使用它,简单易配,包含dhcp服务,但从使用中发现,经常触发查询上限而拒绝服务,调高上限也解决不了问题
三种运行方法
- 下面给出了两种DNS使用docker运行的三种方法:
1. dnsmasq使用docker run启动
docker run --name dnsmasq -d \
-p 53:53/udp -p 8080:8080 \
-v /opt/dnsmasq.conf:/etc/dnsmasq.conf \
-e TZ='Asia/Shanghai' \
-e "HTTP_USER=admin" -e "HTTP_PASS=admin" \
--restart always jpillora/dnsmasq
注:dnsmasq.conf参考这里
2. bind 使用compose
mkdir cmp_bind; cd cmp_bind;
cat >docker-compose.yml
<<EOF
bind:
image: sameersbn/bind
volumes:
- /opt/bind:/data
- /opt/bind/entrypoint.sh:/sbin/entrypoint.sh
ports:
- "53:53/udp"
environment:
- WEBMIN_ENABLED=false
restart: always
EOF
docker-compose up -d
注: 代码中的opt/bind目录可以从这里下载,也可以先运行一个不带-v参数的容器,
3. bind使用docker run启动
docker run --name bind -d \
-p 53:53/udp \
-e WEBMIN_ENABLED=false \
-v /opt/bind:/data \
-v /opt/bind/entrypoint.sh:/sbin/entrypoint.sh \
sameersbn/bind:latest