我使用Fig和Docker来收集示例Rails应用。目前,它工作正常,数据库和服务器启动。当我有一个活跃的互联网连接时,一切都很完美。但是,当我没有连接互联网时,连接需要很长时间(从请求本地主页的浏览器开始20秒)到Rails / WEBrick服务器。
我查看了日志,没有什么是不寻常的。容器接收初始连接需要很长时间,而且传输数据需要很长时间。
答案 0 :(得分:4)
好的,我测试了它,这是因为DNS解析。当你"禁用"典型的谷歌DNS而不是使用localhost,延迟消失。这可能是因为没有这样做,Docker假设127.0.0.1是需要通过NS查找的某个地址,并且花费大量时间等待响应(大概是因为它通过UDP发送它,它等待的时间更长,因为丢失/丢弃的数据包)。这也是为什么请求没有立即记录的原因,因为DNS位于网络堆栈的较低级别。