Docker容器通过独立IP暴露给局域网的方法

Docker容器非常轻量,系统开销非常少,比VMware或者VirtualBox用起来方便,部署起来也非常容易。官方推荐我们通过端口映射的方式把Docker容器的服务提供给宿主机或者局域网其他容器使用。一般过程是:

1、Docker进程通过监听宿主机的某个端口,将该端口的数据包发送给Docker容器

2、宿主机可以打开防火墙让局域网其他设备通过访问宿主机的端口进而访问docker的端口

这里以CDNS为例,CDNS是一个用于避免DNS污染的程序,通过CDNS可以把你的计算机变成一个抗污染的DNS服务器提供给局域网使用。Docker镜像下载地址:https://hub.docker.com/r/alexzhuo/cdns/


原理是在Docker容器中启动CDNS,监听53端口,Docker容器的IP地址为172.12.0.2,宿主机把5053端口映射到Docker容器上,访问宿主机的127.0.0.1:5053就相当于访问Docker的53端口,所以Docker的启动方法是:

sudo docker run -itd -p 0.0.0.0:5053:53/udp --name=CureDNS alexzhuo/cdns cdns -c /etc/cdns.config.json

这样我们使用dig工具通过5053端口查询DNS就是无污染的DNS了,过程如下:

alex@alex-Lenovo-U310:~$ dig www.facebook.com @127.0.0.1 -p 5053

; DiG 9.10.3-P4-Ubuntu <<>> www.facebook.com @127.0.0.1 -p 5053
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9522
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 5

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.facebook.com.		IN	A

;; ANSWER SECTION:
www.facebook.com.	1550	IN	CNAME	star-mini.c10r.facebook.com.
star-mini.c10r.facebook.com. 30	IN	A	31.13.95.36

;; AUTHORITY SECTION:
c10r.facebook.com.	2010	IN	NS	a.ns.c10r.facebook.com.
c10r.facebook.com.	2010	IN	NS	b.ns.c10r.facebook.com.

;; ADDITIONAL SECTION:
a.ns.c10r.facebook.com.	2439	IN	A	69.171.239.11
a.ns.c10r.facebook.com.	2439	IN	AAAA	2a03:2880:fffe:b:face:b00c:0:99
b.ns.c10r.facebook.com.	3351	IN	A	69.171.255.11
b.ns.c10r.facebook.com.	1253	IN	AAAA	2a03:2880:ffff:b:face:b00c:0:99

;; Query time: 47 msec
;; SERVER: 127.0.0.1#5053(127.0.0.1)
;; WHEN: Mon Apr 10 16:21:46 CST 2017
;; MSG SIZE  rcvd: 213

这里假设我们的宿主机IP是192.168.12.107

如果现在出现另外一台局域网计算机,IP地址为192.168.12.113,它想把宿主机当成DNS服务器,那么我们就需要在192.168.12.113这台计算机上访问192.168.12.107:5053来查询DNS,dig命令如下

dig www.facebook.com @192.168.12.107 -p 5053
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值