【发布时间】:2019-09-08 14:24:17
【问题描述】:
我想知道操作系统如何管理 Docker 容器。我可以在这里找到一些解释:https://stackoverflow.com/a/47784145/11377751,但我不太理解。
我了解操作系统的基础知识(关于 PCB、内存、CPU、内核、系统调用等的概念)。
但我不明白操作系统如何管理容器:
- 容器是进程还是它们被 Docker 引擎“模拟”(这将是唯一的进程,有它的线程)?如何在 ram 中表示容器?
- 如果在我的容器中启动一个包含“fork();”的 C 应用程序,谁调用内核:容器还是 Docker 引擎?谁复制了pcb?还是“malloc (..);”?
- 内核中命名空间的概念是什么?在公羊?这些表是定义访问权限还是什么?为什么 wikipedia 说这个概念对于容器来说是必不可少的,因为知道 Docker Engine 在模式中表示在容器和内核之间?
图片:
这是我在这里找到的图片:https://stackoverflow.com/a/42111368/11377751
非常感谢您
【问题讨论】:
标签: docker process linux-kernel ram