Docker与VM和LXC的关系

Linux容器(LXC)的理解是,它提供了一个适用于Linux系统的原生虚拟机pipe理程序,类似于Windows 8中引入的Windows Hyper-V。我的意思是,Linux系统能够托pipe访客虚拟机它内部不需要安装任何一种专门的虚拟化软件。

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

  1. 包括操作系统,操作系统的确切configuration和调整以及安装/configuration/部署到该操作系统的任何工具或应用程序的VM /节点的确切应用程序堆栈; 和
  2. 运行此虚拟机/节点的确切资源要求,包括CPU要求,内存/磁盘/networking要求,负载平衡和复制要求等。然后,Docker使用这些声明的要求作为基准来计算运行容器的节点。

所以首先,如果我对LXC或Docker的理解是误导性的, 请首先纠正我!

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

  • Docker和vmWare或Xen VM之间有什么关系? Docker是否位于虚拟化层的顶端? 换句话说,对于不同的虚拟化平台(vmWare,Xen,kvm等)是否存在“Docker绑定”,我可以将一个Docker容器用于myapp并将其部署到任何Docker-ified平台上?
  • LXC和Docker有什么关系? Docker只是简单地扩展LXC,还是完全类似(但完全分离)的概念? 如果它的LXC的延伸,那么以什么方式?

LXC和Docker之间的关系, – > docker开始使用LXC,但是由于docker 0.9,docker使用libcontainer,不再使用lxc-start来启动容器。 与LXC相比,docker提供了一个REST API,允许从registry中移动图像,并允许使用Docker文件构build…