自从我在Ubuntu机器上安装了docker以来,我一直在处理它所宣传的mDNS地址问题。
为了让我在不知道ip的情况下进入我的盒子,我需要使用<hostname>.local
,我需要将其解析为eth0接口。这一直在进行,直到我配置了docker。
我将/etc/docker/daemon.json设置为:
{
"bip": "192.168.254.1/24"
}
我通过以下简单命令启动docker守护程序:sudo service docker start
。我确认适当的docker bridge(接口docker0)和防火墙(ip表)是预期的。我所有的服务都按预期相互通信。
当我运行ifconfig
时,我看到docker0
广告192.168.254.1
和eth0
广告10.14.146.62
。
当我从我的ubuntu计算机中ping ping <hostname>.local
时,它会解析为10.14.146.62
。同一网络上的其他机器也是如此。
但是,经过一段时间(30分钟)后,会发生以下情况:
ping <hostname>.local
开始返回未知主机<hostname>
时看到的地址解析为192.168.254.1
。解决此问题的唯一方法(暂时)是:
这会让我回到内部和外部<hostname>.local
解析为10.14.146.62
一段时间的状态。
我尝试修改/etc/avahi/avahi-daemon.conf
以包含以下内容而没有任何成功的结果:
allow-interfaces=eth0
deny-interfaces=docker0
我考虑在docker configs中设置iptables=false
,但我需要从外部访问我的服务。
在线搜索引导我找到各种解决方案,包括码头,防火墙或avahi问题/配置。但是,到目前为止还没有任何成果。有什么建议吗?