LXD和Docker


这篇博文并不是关于围绕LXC,LXD,Docker,Kubernetes等的技术细节,它关注的是LXD和Docker正在解决的不同用例,应该可以帮助非专家理解它们。

Canonical上周在ODS上演示了LXD的原型。几位记者错误地理解了LXD是Docker的竞争对手。事实是,LXD试图解决的是一个与Docker完全不同的用例。Ubuntu14.04是第一个为Docker提供商业支持的操作系统。由Ubuntu驱动的Docker映像是所有其他操作系统加起来的6倍。Ubuntu喜欢Docker。

不同的用例?

Docker专注于成为应用程序的通用容器。开发人员喜欢Docker,因为它允许他们快速原型化解决方案并与其他人共享。Docker最好比作洋葱。所有内部层都是只读的,只有最后一层是可写的。这意味着人们可以快速重用由他人制作的Docker容器,并在需要时在顶部添加自己的层。之后,你将你的“个性化洋葱”上传到Docker hub,这样其他人就可以从你的工作中受益。Docker是提高开发人员生产力和展示创新的理想之选。

Canonical是Ubuntu背后的公司,Ubuntu为64%的OpenStack提供支持,OpenStack是世界上增长最快的开源项目。在OpenStack中,就像在VMWare或AWS中一样,您在主机操作系统上运行一个管理程序,然后在上面安装一个客户操作系统。因为您有两层操作系统,所以您可以在一台服务器上同时托管多个操作系统上的许多应用程序。与非虚拟化相比,这大大优化了资源的使用。但是,由于需要复制操作系统,因此浪费了大量资源。现在,理想情况下,您可以将Docker直接放在OpenStack中,并从容器中运行所有应用程序。这样做的问题是,Docker不允许管理员远程登录到容器,只需添加一些监视,备份等,以及管理员为保证SLA所做的其他正常活动。LXD进来了。LXD建立在一种叫做LXC的容器技术之上,Docker以前使用过这种技术。然而,LXD允许您访问虚拟服务器,就像在虚拟机管理程序的情况下一样。最大的区别在于,LXD不需要复制操作系统。相反,它对主机操作系统进行了分区,并确保在不同容器中运行的不同应用程序之间的公平和安全使用。结果是,同一台服务器可以打包更多的应用程序,并且应用程序在不同服务器之间的启动和迁移变得非常快。这个想法并不新鲜。大型机已经有了容器。Solaris有容器。LXD只是确保您最喜欢的私有云具有易于管理的容器。

hypervisor,Docker和LXD能共存吗?

是的。hypervisor可以确保Windows在Ubuntu主机上运行[linux容器不能支持Windows在顶部运行]。Docker容器可以承载一些下一代的向外扩展解决方案,这些解决方案要么是为Docker构建的,要么已经进行了更改以支持Docker引入的一些新范例。LXD将最适合所有您只想按原样移动的标准Linux工作负载。不需要更新应用程序或集成到其中的工具。
由于LXD拥有Apache许可,并且可以在Github上使用,因此未来很可能会发展成为一个LXD和Docker优势以某种形式结合在一起的世界。希望能有新的创新加入进来。这就是开源创新的力量,也正是Canonical与世界分享LXD的原因…