Docker、LXD 和 LXC 有什么区别

Ija*_*han 202 lxc docker lxd

Docker、LXD 和 LXC 之间有什么区别。他们提供相同的服务还是不同的服务。

cla*_*123 163

不,LXC、Docker 和 LXD 并不完全相同。简而言之:

LXC

LinuX Containers (LXC) 是一种操作系统级虚拟化方法,用于在单个控制主机(LXC 主机)上运行多个隔离的 Linux 系统(容器)

https://wiki.archlinux.org/index.php/Linux_Containers

低级...

https://linuxcontainers.org/

码头工人

  • 作者:Docker, Inc
  • 一个使用 LXC 容器的容器系统
  • 所以你可以:http : Build, Ship, and Run Any App, Anywhere //www.docker.com

LXD

Docker 与 LXD

  • Docker 专注于部署应用程序
  • LXD 专注于部署 (Linux) 虚拟机

Docker 与 LXD 的信息图

来源:http : //linux.softpedia.com/blog/infographic-lxd-machine-containers-from-ubuntu-linux-492602.shtml

原文:https : //insights.ubuntu.com/2015/09/23/infographic-lxd-machine-containers-from-ubuntu/

次要技术说明

  • 自 2014 年以来,Docker 没有在幕后使用 LXC:https://blog.docker.com/2014/03/docker-0-9-introducing-execution-drivers-and-libcontainer/ (19认同)

小智 84

此图可以帮助您了解它们之间的主要区别:

lxc x 码头工人

它们的共同点是,这 3 项技术都与容器有关。

容器是一种轻量级虚拟化机制,不需要您在模拟物理硬件上设置虚拟机。在 Linux 中,它们的共同点是使用的内核特性:cgroups, namespaces(ipc, network, user, pid, mount). 他们还尝试通过创建非特权容器并与selinux. 这些技术导出 API 以更好地与其他软件集成。

LXD 和 LXC

这两个集成了同一个系列,其中:

  • lxc:Linux 内核包含功能的用户空间接口。这是管理内核命名空间、Apparmor 和 SELinux 配置文件、Chroots、内核功能以及所有其他内核相关内容的人
  • lxd:是一个容器“管理程序”。它由守护进程 (lxd)、命令行界面 (lxc) 和 OpenStack 插件组成。这个家伙的开发目的是为 lxc 提供更多的灵活性和功能,同时它仍然在后台使用它。

基本上,独立的操作系统用户空间是用它的隔离基础设施创建的。lxc 比 Docker 更直接地基于操作系统的网络和存储功能。

您创建了许多具有用户空间和内核隔离的虚拟机,但它们不是完整的虚拟机,因为它们没有运行单独的内核,出于同样的原因也没有半虚拟化。

Canonical 是这里的主要赞助商,甲骨文也在这项技术上投入了工时。

码头工人

它有一些不同之处,其中最大的是用独立的文件系统而不是基本的“用户空间映像”包装应用程序的引擎。这个想法是包含应用程序和基本图像,以创建应用程序是引擎内的单个进程的印象。Docker 使用 lxc 技术作为与内核通信的底层技术,但今天,它使用自己的库libcontainer

文件系统是对 Docker 的抽象,而 lxc 直接使用文件系统功能。网络也是一种抽象,而使用 lxc 您可以更轻松地设置 IP 地址和路由配置。一些“类似 App Store”的网站由微软、亚马逊、Vmware、IBM 和其他玩家维护。

码头工人。INC. 是这里的主要赞助商。Vmware也在投资这项技术。

相关容器技术:

这些是 Linux 拥有的其他容器技术:OpenVZLinux-VServer

相关资料:

  • 我越来越怀疑来自 Canonical 的产品。他们倾向于宣传他们可能是什么,而不是他们是什么。通常,“可能”还需要几年的时间。 (5认同)