gpt4 book ai didi

docker - 如何理解LXD和VM、Docker的区别?

转载 作者:行者123 更新时间:2023-12-05 02:43:54 28 4
gpt4 key购买 nike

当我使用 Travis-CI 时,我需要在 LXD 和完整 VM 之间做出选择:https://docs.travis-ci.com/user/reference/overview/ .虽然链接页面描述了它们在特定用法中的特性,但我想问一下 LXD 在概念上与所谓的完整 VM 有何不同,它们与 Docker 相比如何?我假设 CI 测试应该在预装 Linux 或其他操作系统的服务器上运行,并且我们不需要在服务器端运行 LXD 或 VM。所以我对在服务器上运行的 LXD 或 VM 的基本概念感到很困惑。有什么解释吗?

最佳答案

使用 VM,您可以设置完整的 Linux 发行版,它运行新的 Linux 内核和发行版的运行时。 VM 需要 CPU 的硬件支持,需要大量内存,并且启动需要一些时间。

通过 LXD,您可以设置 VM 和系统容器

系统容器的行为类似于虚拟机,但不使用硬件虚拟化。它使用 Linux 内核功能与主机的其余部分隔离,即 cgroupsnamespaces

此外,系统容器不会引导单独的 Linux 内核;它重用了主机的 Linux 内核。多亏了 Linux 内核稳定 API,您的主机可以运行 Ubuntu,并且您可以让系统容器同时运行 Ubuntu、Fedora、Alpine、Oracle Linux 等。

相比之下,系统容器与虚拟机相比只占用很少的资源。作为系统容器的典型 Linux 发行版可能从大约 200MB RAM 开始。

系统容器(和 LXD 虚拟机)使用存储池,包括 ZFS、btrfs、LVM 或其他一些。通过这样做,他们支持写时复制,这意味着容器创建几乎是即时的。因为存储池中已经有一个容器镜像准备好了,任何新的容器都是基于这个容器镜像的。在快速服务器上,它可能不到一秒。

关于docker - 如何理解LXD和VM、Docker的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66727257/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com