无法使用新的1.10 DNS SD访问容器

我一直在尝试最新的RCdocker和几天,最后,今天,新的稳定版本(分别为1.10和1.6)。

在1.9中添加的新的networking东西迄今为止是非常棒的。 但是,由于我升级到1.10rc1(到目前为止每个RC和稳定),在同一个用户定义的networking中的容器不能再find对方。 事实上,他们现在甚至无法到达外面的世界。

一个简单的例子,文件test_docker / docker-compose.yml:

version: '2' services: db1: image: mysql environment: MYSQL_ALLOW_EMPTY_PASSWORD: yes db2: image: mysql environment: MYSQL_ALLOW_EMPTY_PASSWORD: yes 

这会创build两个包含官方映像的MySQL容器。 根据撰写文档,应创build一个新的testdocker_default ,这两个容器自动连接,情况如下:

 docker network inspect testdocker_default [ { "Name": "testdocker_default", "Id": "820f702e8e685567e4f1a8638cd9be305e96e37fcd741306eed6c1cf0d54ba02", "Scope": "local", "Driver": "bridge", "IPAM": { "Driver": "default", "Options": null, "Config": [ { "Subnet": "172.17.0.0/16", "Gateway": "172.17.0.1/16" } ] }, "Containers": { "16d5594bdfd11f55d33a207612b8447f6b50ff4be8b42d2313707b06ca618556": { "Name": "testdocker_db2_1", "EndpointID": "b6d5ff10fba860c01ac7a6508e56c5e116296cd06ea2158c695897e18fcd50ce", "MacAddress": "02:42:ac:11:00:03", "IPv4Address": "172.17.0.3/16", "IPv6Address": "" }, "9b8b885dab3b5012c9663cb97a07af66fbe385f92c69a614a4d56bf85305ec3a": { "Name": "testdocker_db1_1", "EndpointID": "09e43aef8e14b0e876d47fabe67a3827dc4cea5d44b199113d9ab2678d8ce22a", "MacAddress": "02:42:ac:11:00:02", "IPv4Address": "172.17.0.2/16", "IPv6Address": "" } }, "Options": {} } ] 

现在,文档还说,容器应该能够通过db1db2到达对方,但事实并非如此:

 root@9b8b885dab3b:/# mysql -h db2 -u root ERROR 2005 (HY000): Unknown MySQL server host 'db2' (111) root@9b8b885dab3b:/# mysql -h testdocker_db2_1 -u root ERROR 2005 (HY000): Unknown MySQL server host 'testdocker_db2_1' (111) 

另外,除非我明确地将Google的DNS添加到/etc/resolv.conf ,否则这两个容器都不能访问互联网。

我很确定我在这里做错了什么,因为我找不到其他人提出的问题,但我无法弄清楚它是什么。

多谢你们!

编辑:

为了说明,容器可以通过IP地址相互ping通,但主机名不parsing。

这个问题在GitHub上报告过 。 目前build议的解决方法是完全禁用firewalld

我会尽快更新这个答案,find一个更好的解决scheme。

编辑#1:

拉取请求解决这个问题 (Fedora 23testing)。 这个PR已经与master合并,任何想从源码编译Docker的人都可以。

找不到预期的发布date,但我猜测它将在接下来的几周内作为补丁版本发布。 将再次更新这个答案与进一步的信息时可用。

编辑#2:

Docker的1.10.1 RC解决了这个问题。 我将把这个答案标记为接受这个话题。