栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么Docker运行这么多进程来将端口映射到我的应用程序?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么Docker运行这么多进程来将端口映射到我的应用程序?

为什么Docker完全使用用户空间进程?

Nigel Brown在docker-proxy上写了一篇详细的文章,解释了如何以及为什么。

docker-proxy
,然后,是一个“捕获所有”用于允许容器端口转发到主机多克尔方法。但是,通常认为这
docker-proxy
是对上述问题的不佳解决方案,并且当暴露大量容器端口时,它将消耗大量内存。先前曾尝试删除对的依赖
docker-proxy
,但这与RHEL
6.x和CentOS 6.x中老化的内核的限制相抵触,Docker项目感到必须支持这些限制。因此,在
docker-proxy
当前版本1.5之前的所有Docker版本中,这些
仍然是Docker经验的主要组成部分。在我撰写本文时,即将发布1.6版,并且已经采取了一些措施来删除对
docker-proxy
,我将在另一篇文章中介绍。

Docker现在包括一个守护程序运行时选项,以使用禁用用户态代理

--userland-proxy=false
。这是在v1.7中引入的。

禁用userland代理时,似乎存在一些边缘案例错误。还有IPV6问题

GitHub上存在一个开放的问题,默认情况下禁用userland代理(Docker不再支持RHEL6)。

Docker为什么要为每个端口启动一个进程?

除了以这种方式实现之外,似乎没有其他原因。一个进程应该能够处理容器的所有端口映射

为什么每个进程需要4-6MB的内存?


代理实现和包装看起来干净和内置转到功能使用所以这可能只是转到最初的垃圾收集范围,允许它增长到5MB〜。

编辑 :内存使用已在Docker
1.12中得到了改进。每个端口仍然有一个进程,但是每个进程现在仅使用约750k的私有内存空间。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/403425.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号