libcontainer 在 docker 堆栈中的什么位置?

Where does libcontainer stand in docker stack?

我所知道的典型 docker 容器堆栈是 docker(客户端)-> dockerd -> containerd -> runC。 然后您还会听说 libcontainer。 我想知道 libcontainer 在上面的堆栈中的位置以及它是什么 role/purpose.

简答:

github.com/docker/libcontainer
开始的内容 现在似乎在 github.com/opencontainers/runc/tree/master/libcontainer

继续

这意味着我们现在有:dockercontainerdrunclib容器


一点历史

以下部分来自:A history of low-level Linux container runtimes

开头:

...the upstream Docker developers, including some members of my Red Hat team, decided they wanted a golang-native way to launch containers, rather than launching a separate application. Work began on libcontainer, as a native golang library for launching containers...

Open Container Initiative (OCI) 成立后:

...The libcontainer parts of Docker were broken out and donated to the OCI. The upstream Docker engineers and our engineers helped create a new frontend tool to read the OCI Runtime Specification JSON file and interact with libcontainer to run the container. This tool, called runc, was also donated to the OCI.


延伸阅读: