Docker LXC和libcontainer之间的区别

Docker LXC和libcontainer之间的区别,docker,lxc,Docker,Lxc,在浏览docker文档时,我发现docker现在使用的是libcontainer而不是LXC。有人知道libcontainer如何比LXC更好(如果有…)吗? 在docker 0.9之前(在上,docker放弃了LXC作为默认执行环境,并将其替换为自己的libcontainer库),作为docker的一个执行驱动程序,并为Linux内核包含特性提供了用户空间接口。它非常特定于Linux libcontainer(现在)是一种抽象,以支持更广泛的隔离技术 这意味着,Docker正在将自己从其原

在浏览docker文档时,我发现docker现在使用的是libcontainer而不是LXC。有人知道libcontainer如何比LXC更好(如果有…)吗?

  • 在docker 0.9之前(在上,docker放弃了LXC作为默认执行环境,并将其替换为自己的libcontainer库),作为docker的一个执行驱动程序,并为Linux内核包含特性提供了用户空间接口。它非常特定于Linux

  • libcontainer(现在)是一种抽象,以支持更广泛的隔离技术

这意味着,Docker正在将自己从其原始实现中抽象出来,允许其他供应商(如CoreOS)实现自己版本的容器


注意:此后()显示:

2016年,集装箱空间蓬勃发展,docker决定将整体分割成单独的部分,其中一些部分甚至可以用于其他项目 — 这就是发生的原因。这就是Docker 1.11(非常古老的历史)。
Containerd是一个守护进程,充当各种容器运行时和操作系统的API外观。使用
containerd时,
您不再使用系统调用,而是使用更高级别的实体,如快照和容器 — 其余的都被抽象掉了。
如果你想更深入地理解containerd,他们的GitHub回购协议中有一个重要的内容。
在引擎盖下,
containerd
使用
runc
完成所有linux工作

有关详细信息,请参阅“”


我建议您通过此链接全面了解Docker启动libcontainer的原因


如我所知。。LXC是docker引擎执行其容器/名称空间和其他文件的默认执行驱动程序。Docker开发了“libcontainer”,并将其添加到Docker引擎中。如果我错了,请纠正我

问题是关于libcontainer的,不是关于libcontainer的libnetwork@ISanych好的,我会重写答案then@VonC谢谢你的回复。这意味着,现在docker有了名称空间、cgroup(来自LXC)和来自libcontainer的附加内核特性selinux、netlink、功能等。我说的对吗?VonC?@YogeshJilhawar是的,这就是规范中提到的(:amespace、标准文件系统设置、默认Linux功能集以及关于资源保留的信息)。虽然这个链接可能会回答这个问题,但最好在这里包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,则仅链接的答案可能无效。