3

我知道的典型 docker 容器堆栈是 docker(client) -> dockerd -> containerd -> runC。然后您还会听说libcontainer。我想知道 libcontainer 在上面的堆栈中的位置以及它的作用/目的是什么。

4

1 回答 1

1

简短的回答:

github.com/docker/libcontainer开始的东西
现在似乎github.com/opencontainers/runc/tree/master/libcontainer继续

这意味着我们现在有:dockercontainerdrunclibcontainer


一点历史

部分来自:下面是低级 Linux 容器运行时的历史

开头:

...上游 Docker 开发人员,包括我的 Red Hat 团队的一些成员,决定他们想要一种 golang-native 方式来启动容器,而不是启动一个单独的应用程序。工作开始了libcontainer,作为一个用于启动容器的本地 golang 库......

开放容器倡议(OCI)成立后:

... libcontainerDocker 的部分被分解并捐赠给了 OCI。上游 Docker 工程师和我们的工程师帮助创建了一个新的前端工具来读取 OCI 运行时规范 JSON 文件并与之交互libcontainer以运行容器。这个名为 的工具runc也被捐赠给了 OCI。


进一步阅读:

于 2020-06-24T14:30:07.953 回答