在浏览docker docs时,我发现docker现在使用的是libcontainer而不是LXC。有没有人知道libcontainer如何比LXC更好(如果......)?
答案 0 :(得分:31)
Linux Containers (LXC)作为docker的一个执行驱动程序,并为Linux内核包含功能提供了一个用户空间接口。它非常特定于Linux
libcontainer(现为opencontainers/runc
)是一种抽象,以支持更广泛的隔离技术described in this article
这意味着 Docker正在从其原始实现中抽象出来,允许其他供应商(如CoreOS)实现自己的容器版本。
注意:从那时起(What’s the difference between runc, containerd, docker?)显示:
2016年,集装箱空间蓬勃发展,码头工人决定将巨石分成不同的部分,其中一些项目甚至可以建立 - 这就是
containerd
的发生方式。这就是Docker 1.11(非常古老的历史) Containerd是一个守护进程,充当各种容器运行时和操作系统的API外观。使用containerd,
时,您不再使用系统调用,而是使用更高级别的实体,如快照和容器 - 其余部分将被抽象出来。
如果您想深入了解containerd
,GitHub回购中会有design documentation。 幕后,containerd
使用runc
来完成所有Linux工作。
请参阅" How containerd compares to runC"
答案 1 :(得分:0)
据我所知..LXC是docker引擎执行其容器/命名空间等的默认执行驱动程序。 Docker开发了libcontainer'并添加到他们的docker引擎。如果我错了,请纠正我。