容器“gcr.io/google_containers/pause:0.8.0”中的流程有什么作用?

时间:2015-11-02 07:37:00

标签: docker kubernetes

我清楚知道docker选项--net=container:NAME_or_ID的用法,我也读过kubernetes的源代码,关于如何配置容器以使用InfraContainer的网络,所以我认为只有在容器gcr.io/google_containers/pause:0.8.0中处理过程才会“暂停”,它将永远不会执行任何复杂的工作,如“接收”,“发送”或“路由”。

但我不确定,因为我找不到Dockerfile的{​​{1}},所以我需要有人清楚地告诉我真相,谢谢!

3 个答案:

答案 0 :(得分:47)

在Kubernetes中,每个pod都有一个IP,并且在一个pod中存在一个所谓的基础架构容器,它是Kubelet实例化的第一个容器,它获取pod的IP并设置网络命名空间。然后,pod中的所有其他容器都加入infra容器的网络和IPC名称空间。 infra容器启用了网桥模式,并且pod中的所有其他容器通过容器模式共享其命名空间。在infra容器中运行的初始进程实际上没有任何效果,因为它的唯一目的是充当命名空间的主页。

答案 1 :(得分:36)

引自What is the role of 'pause' container?

  

pause容器是一个容纳网络命名空间的容器   对于豆荚。它没有任何用处'。 (它实际上只是一点点   那些进入睡眠状态并且永远不会醒来的集会。

     

这意味着你的阿帕奇'容器可以死,然后回来   生活,所有的网络设置仍然存在。通常如果   网络命名空间中的最后一个进程将死于命名空间   销毁并创建一个新的apache容器需要创建   所有新的网络设置。暂停时,你总会拥有最后一个   命名空间中的东西。

答案 2 :(得分:21)

Dockerfile是here:它只是将暂停二进制文件添加到空容器中。

暂停代码为here:它只会等到收到UIImageUILabel