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
继续
这意味着我们现在有:docker → containerd → runc → lib容器
一点历史
以下部分来自: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.
延伸阅读:
我所知道的典型 docker 容器堆栈是 docker(客户端)-> dockerd -> containerd -> runC。 然后您还会听说 libcontainer。 我想知道 libcontainer 在上面的堆栈中的位置以及它是什么 role/purpose.
简答:
github.com/docker/libcontainer
开始的内容
现在似乎在 github.com/opencontainers/runc/tree/master/libcontainer
这意味着我们现在有:docker → containerd → runc → lib容器
一点历史
以下部分来自: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 withlibcontainer
to run the container. This tool, calledrunc
, was also donated to the OCI.