Docker是一种成熟的虚拟化技术,在过去的几年时间里它的浪潮席卷了全球,几乎垄断了市场,在这个技术日新月异的时代,还是有一些新东西在夹缝中生存,LXD就是一个例子。
Docker以其优秀的表现几乎是瞬间爆发式蔓延至全球,它的理念就是抽象,最小化部署,独立封装运行时。这正是越来越复杂的服务端需要的,但这种理念最初并不是由Docker创造发明的,LXC的诞生就是Docker早很多,在更早的时候使用LXC的还不少,只是没有这么流行,等等,明明不是说LXD和Docker做对比吗?和LXC有什么关系?LXD就是基于LXC开发的。
LXC在早期的市场上表现很好,它是用C,Python,Shell和Lua编写的。那和现在的Docker相比差在哪里呢?
LXC对运行时的封装主要是基于封装系统的API,虽然这使得它更轻量级,效率更高但是在集成和依赖方面加深了复杂度,没有像一样Docker对运行时做系统级别的完整封装,在使用上看起来简单,随着功能的扩展会显得有点错综复杂。如果你的程序功能相对简单和单一也不需要,或者做的是只是镜像一类的需求,那我还是推荐你使用它,效率上有保证,同时也能满需求。
LXD就是LXC的重构和完善,它和Docker同样是基于go的,它受到了LXC忠实粉丝的支持在市场份额上一直比较稳定。进入主题它们主要有哪些差别呢?
(1)产生时间LXD是进化来的产品项目也比较新,这个可能只是个参考,或者你对这个感兴趣。
在github上可以去看一下:
Docker Starts:58.8K Watch:3.2k Fork:16.9k
LXD Starts:62.7K