【问题标题】:LXC : Is it from linuxcontainers.org or part of Linux kernel?LXC:它来自 linuxcontainers.org 还是 Linux 内核的一部分?
【发布时间】:2020-09-13 08:49:29
【问题描述】:

我想了解LXC,偶然发现了这个网站:https://linuxcontainers.org/lxc/introduction/;在这个网站上,它谈到了LXCLXD等等。

我有点困惑,我的印象是 LXC 是一个 Linux 内核特性,所以它应该存在于内核本身中。但是,查看上面的站点即:https://linuxcontainers.org/lxc/introduction/,当我们说 LXC(内核功能)时,这是否相同?或者LXC是https://linuxcontainers.org/lxc/introduction/提供给Linux内核的?

我如何理解这种细微的差别?

【问题讨论】:

  • I am under the impression that LXC is a Linux kernel feature, so it should be present in Kernel 您链接的链接中的第一句话是LXC is a userspace interface,然后在它下面是LXC uses the following kernel features。它不是“内核功能”,而是“用户空间界面”。
  • 感谢您的评论,如果可以的话,您能详细说明一下吗?据我了解:Linux内核提供--> Cgroups、命名空间(所以它们是纯Linux内核特性);和 LXC(来自 linuxcontainers)使用这些功能?这是正确的解释吗?

标签: linux docker lxc


【解决方案1】:

在容器中运行 Linux 所需的大部分核心功能都内置在内核中——命名空间、控制组、虚拟根等。但是,要从这些功能组装一个可用的容器平台需要大量的基础设施。我们需要管理容器存储、在容器之间创建网络链接、控制每个容器的资源使用等。用户空间程序可以并且正在用于提供这种基础设施以及与之配套的工具。

我写了一系列关于从头开始构建容器的文章,解释了其中一些问题:

http://kevinboone.me/containerfromscratch.html

原则上,只使用内核内置的功能和一堆 shell 脚本就可以构建和连接容器。 LXC、Docker 和 Podman 等工具都使用相同的内核特性(据我所知),但它们以不同的方式操作这些特性。

【讨论】:

  • 感谢您提供详细信息。因此,LXC 只是一个创建容器的工具,否则可以通过普通的 vanilla 命令创建(尽管很难做到)。说“容器”是一个通用的团队(Linux Kernel 的概念)和“Linux Container”是由“LXC”创建的一个是否正确。如果是这样,那么 Docker 创建的容器的名称是什么(它现在使用 libContainer)
  • 恐怕我不知道——“容器”似乎已经成为一个有点过分的术语。
  • 感谢您分享您的知识,非常有用。我参考了wiki,那里也提到了相同的,LXC使用Linux内核的核心概念来创建容器。 en.wikipedia.org/wiki/LXC
  • 看这个:haifux.org/lectures/299/netLec7.pdf;低级别,在上述链接中的 wiki 参考文档中提供。
猜你喜欢
  • 2014-04-26
  • 2012-10-28
  • 1970-01-01
  • 2010-12-13
  • 1970-01-01
  • 1970-01-01
  • 2021-07-03
  • 2017-01-03
  • 1970-01-01
相关资源
最近更新 更多