网络 – Docker桥接网络,容器之间的HTTP调用非常慢(在docker up
服务器规格:
刚刚从1.9升级到1.10并添加了docker-compose(但不是使用compose).在升级之前没有发生缓慢问题. Docker也配置了我的DNS IP和代理,如’/ etc / default / docker’
(我的ip完全拼写出来,只是使用X的问题) 我有两个容器(container_a,container_b)都运行HTTP服务器(Node.js),两个容器都在桥接网络上运行(–net = mynetwork)我通过以下方式创建:
这两个容器使用container_name作为HTTP调用的“主机”,在彼此之间进行HTTP调用,如下所示:
这两个容器通过docker bridge网络进行的调用需要很长时间才能完成(约5秒).这些调用通常在100毫秒以下运行. 当我在这些容器上从–net = mynetwork更改网络时,而是将它们作为–net = host运行,同时还修改我的http调用以使用“localhost”作为主机而不是容器名称并通过它们暴露它们的端口a -p flag …调用在预期的时间内运行< 100毫秒. 似乎docker bridge网络导致我在容器之间调用需要很长时间. 我可以在哪里找到诊断/纠正这个问题的想法? 最佳答案
此问题是作为docker 1.10的一部分发布的内部DNS更改的结果.
有关更多信息,请访问:https://github.com/docker/docker/issues/20661 我在守护进程上启用了调试模式,并在我发出请求时查看了日志.我可以看到它首先尝试“8.8.8.8”然后继续“8.8.4.4”,然后最终来到我为主机添加并解析的DNS IP.我的猜测是我的公司代理导致前两个请求(8.8 ..)挂起并最终超时,导致在正确的IP(这是列表中的第三个)解析缓慢. 我的解决方案是更改/ etc / default / docker文件中的DNS顺序以使我的内部IP先行.
这似乎解决了我们的问题,因为它首先将容器之间基于容器名称的HTTP请求解析为该主机DNS IP. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- twitter-bootstrap – 为什么这个Bootstrap 3.0 Modal演示中
- 使用Build.scala进行交叉编译时,如何为每个Scala版本设置不
- Bootstrap标签输入不能与jquery一起使用
- shell – 调用一个脚本,它有一个awk shebang,带有参数(vars
- Resultful WebService 入门 helloworld
- 【数据结构】顺序栈
- Angular 2:使用函数生成路由链接/动态生成routerLink
- angularjs – 强制ng-src重新加载
- angularjs – 如何解决..凭证标志是’真’CORS错误
- angularjs – 在一个ng-repeat内获得多个选择的值