首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么pids要跳入容器中?

问为什么pids要跳入容器中?
EN

Stack Overflow用户
提问于 2020-05-26 12:12:45
回答 1查看 142关注 0票数 1

进入容器(例如docker run或docker exec)会使next创建的进程的PID提前,为什么?

例如,在容器中的第二个进程(ps)下面的图像中分配PID 10,而不是PID 2:

​

​

根据这个回答,Linux似乎是按顺序分配PID的,不是总是这样吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-30 19:00:43

曾与runc的维护人员Aleksa Sarai交谈过,他解释了为什么会发生这种情况。

通过设计,golang运行时生成几个线程来管理一个进程。龙克是用golang编写的,当构建/执行到容器中时,在容器内运行runc进程的时间很短(在提取用户请求的可执行文件之前,例如docker exec bash中的bash )。在Linux中,线程和进程都是用来自同一个池的ids标识的,因此go运行时线程被计算在容器pid命名空间中,导致了我所描述的pid跳转。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62021904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档