Docker 与 VM 和 LXC 的关系

Docker relationship to VMs and LXC

我对 Linux 容器 (LXC) 的 理解 是它为 Linux 系统提供了一个本机管理程序,类似于 Windows' Hyper-V 在 Windows 8 中引入。"native hypervisor" 我的意思是,Linux 系统无需安装任何类型的专用虚拟化软件即可在其中托管来宾 VM 的能力。

我对 Docker 的 理解 是它 以某种方式 构建在 LXC 之上,并允许应用程序开发人员定义:

  1. VM/node 的确切应用程序堆栈,包括 OS,OS 的确切配置和调整,以及任何工具或应用程序 installed/configured/deployed OS;和
  2. 运行此 VM/node 的确切资源要求,包括 CPU 要求、memory/disk/network 要求、负载平衡和复制要求等。Docker 然后使用这些声明的要求作为其基线,计算出 运行 容器所在的节点。

所以首先,如果我对 LXC 或 Docker 的理解有任何误导,请开始纠正我!

假设我的理解或多或少是正确的,我问:

relationship between LXC and Docker, -> docker started using LXC, but since docker 0.9, docker uses libcontainer, and no longer uses lxc-start to start the containers. Compared to LXC, docker offers a REST Api, allows to move images from and to the registry, allows to build using Dockerfiles...