使用指南有没有想过在自己的服务器上使用a.com就访问自己指定的IP,当然了,使用本地hosts文件也可以实现,但是如果在当下的集群服务环境下呢?你也想挑战管理那么多IP地扯池么,好了回到正文这里,我们使用
dnsmasq
对应的docker版本docker-dnsmasq
。
下载镜像
docker pull docker-dnsmasq
创建最简单的配置 /opt/dnsmasq.conf
#dnsmasq config, for a complete example, see:
# http://oss.segetech.com/intra/srv/dnsmasq.conf
#dns解析日志
log-queries
#定义主机与IP映射
address=/h0/172.17.205.28
address=/h1/172.17.205.32
...
运行容器
docker run \
--name dnsmasq \
-d \
-p 53:53/udp \
-p 8080:8080 \
-v /opt/dnsmasq.conf:/etc/dnsmasq.conf \
--log-opt "max-size=100m" \
-e "HTTP_USER=admin" \
-e "HTTP_PASS=admin" \
--restart always \
jpillora/dnsmasq
参数说明
名称 | 说明 |
---|---|
max-size | 日志最大保存 |
HTTP_USER | 登录用户名 |
HTTP_PASS | 登录密码 |
- 使用
admin/admin
帐号密码登录。
DNS配置
- 在
/etc/resolv.conf
文件前面增加下面两句 - 只增加
172.17.205.28
DNS会解析失败nameserver 127.0.0.1 #必填 nameserver 172.17.205.28 #必填[本机主要网卡] ...
测试
- 本机与其它机子的配置一样
- 必填要在前面加才会生效,因为DNS解析会从上往下解析
root@center ~# ping h1 PING h1 (172.17.205.32) 56(84) bytes of data. 64 bytes from 172.17.205.32 (172.17.205.32): icmp_seq=1 ttl=64 time=0.155 ms 64 bytes from 172.17.205.32 (172.17.205.32): icmp_seq=2 ttl=64 time=0.203 ms ^C --- h1 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1000ms rtt min/avg/max/mdev = 0.155/0.179/0.203/0.024 ms
增加解析
- 点击保存即可,过几秒可自动生效
address=/h0/172.17.205.28 address=/h1/172.17.205.32 address=/h2/172.17.205.33 address=/h3/172.17.205.34 address=/h4/172.17.205.35 ....
注意
- 建议保持其它机子的
hostname
与上面的配置一样 - 否则有可能会出现如下问题
root@asdf ~# ping h0 ping: h0: Name or service not known