使用Virtual Box无法与Docker(Centos 7)+ DNS服务器(Container Ubuntu 14.04)通信
我有一个与虚拟框的Docker(Centos 7)+ DNS服务器(容器Ubuntu 14.04)的问题。 首先,我需要解释我是如何构build结构的:
我正在使用虚拟机testingDocker,在这种情况下使用虚拟机。
我在模式桥中创build了一个带有一个网卡的Centos 7虚拟机。
在Centos 7里面有Docker v.1.6.0 ,接口docker0 172.17.42.1(Bridge) ,是Docker的默认接口。 这是我用root做的configuration。
在Docker里面我用Ubuntu 14.04创build了一个容器:
# sudo docker run -i -t ubuntu /bin/bash
NAT的docker0给我IP 172.17.0.2(eth0 – >桥) ,我与bind9的 DNS服务器,这是我的configuration:
/etc/bind/named.conf.local
zone "domain.com" { type master; file "/etc/bind/db.domain.com"; }; zone "42.17.172.in-addr.arpa" { type master; file "/etc/bind/db.172.17.42"; };
/etc/bind/db.domain.com
; ; BIND data file for local loopback interface ; $TTL 604800 @ IN SOA domain.com. hostmaster.domain.com. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns.domain.com. ns IN A 172.17.42.1 www IN A 172.17.42.1
/etc/bind/db.172.17.42
; ; BIND data file for local loopback interface ; $ORIGIN 42.17.172.in-addr.arpa. $TTL 604800 @ IN SOA domain.com. hostmaster.domain.com. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns.domain.com. 42 IN PTR ns.domain.com. 42 IN PTR www.domain.com.
重新启动bind9:
# service bind9 restart
与其他terminal进行提交以保存此configuration的图像:
eg docker commit (ID image) (Name new image) # docker commit 123rf dnsserver
从容器ubuntu(poweroff容器)退出,然后运行新的图像:
# docker run -i -t -d --name=bind9 --dns=127.0.0.1 --publish=53:53/udp --volume=/srv/docker/bind:/data --env='ROOT_PASSWORD=root' dnsserver /bin/bash
现在,我认为在这个容器中打开了DNS端口(53)。
与另一台机器新,将是testingDNS服务器的客户端,与Ubuntu SO,这台机器有一个网卡模式的桥梁。 我更改了172.17.42.1的DNS并重新启动networking。 我试着ping 172.17.42.1但是这样说:
# ping 172.17.42.1 PING 172.17.42.1 (172.17.42.1) 56(84) bytes of data. From 80.58.67.97 icmp_seq=21 Packet filtered From 80.58.67.97 icmp_seq=22 Packet filtered ...
什么是数据包过滤 ? Ipetables Centos7什么的,阻止它?
所以我决定尝试ping主机SO的docker(Centos 7)和工作,所以我试图testingDNS和工作:
# nslookup www.domain.com Server: 172.17.42.1 Address: 172.17.42.1#53
¿为什么另一台客户端机器无法与DNS服务器通信,如果机器停留在桥梁上? 我做错了?
如果docker0接口是一个桥梁,为什么不能与世界通信?
如果你需要更多的数据让我知道,我会发布。
提前致谢。
- Cron(和systemd)在docker的centos7中
- 如何在centos 7上更改docker ip地址?
- 如何从centos7 Docker容器的仓库安装Gradle和Node
- Docker:nginx + mariadb + php + redis的docker-compose.yml文件
- Centos docker容器崩溃了6个分段错误 – 核心转储在哪里
- 在centos7上安装docker:docker-engine-selinux与docker-selinux-冲突
- Docker(带有SYSTEMCTL的CentOS 7):无法安装tmpfs&cgroup
- 如何将dockerconfiguration为使用/ opt而不是/ var
- Postfix maillog在Centos 7 Docker中没有条目