替代 Docker 的五种容器选择

栏目: 服务器 · 发布时间: 5年前

内容简介:据 2018 年统计,Docker 占据了 83% 的容器市场份额。可是就在 2017 年,这个数字还是 99%,Docker 的统治地位无疑受到了削弱。不可否认,Docker 仍然是目前最流行的容器方案,但随着容器市场的不断成熟以及多元化趋势,其他诸如 CoreOS rkt、Mesos、lxc 等容器运行时也得到了稳步增长。本文将带你深入分析几种 Docker 的替代方案,就它们的异同、独特性以及优缺点方面展开探讨。“数据显示,用户在生产环境中使用去 docker 化容器方案的情形,要远比想象中乐观”
替代  <a href='https://www.codercto.com/topics/20577.html'>Docker</a>  的五种容器选择

据 2018 年统计,Docker 占据了 83% 的容器市场份额。可是就在 2017 年,这个数字还是 99%,Docker 的统治地位无疑受到了削弱。不可否认,Docker 仍然是目前最流行的容器方案,但随着容器市场的不断成熟以及多元化趋势,其他诸如 CoreOS rkt、Mesos、lxc 等容器运行时也得到了稳步增长。

本文将带你深入分析几种 Docker 的替代方案,就它们的异同、独特性以及优缺点方面展开探讨。

“数据显示,用户在生产环境中使用去 docker 化容器方案的情形,要远比想象中乐观”

2018 Sysdig 报道

CoreOS rkt

2018 年,rkt(Rocket- 火箭缩写,发音相同)占据了 12% 的容器市场份额。rkt 支持两种不同的镜像类型:Docker 和 appc。rkt 最大的优势就是可以直接兼容 kubernets,也因此被称作 rktnetes。我们只需要一个命令行,就可以在 Kubernets 中完成对 rkt 的部署:

>$ kubelet --container-runtime=rkt

另外 rkt 还支持 TPM(可信平台模块),提供了非常好的安全性支持。它对应用容器也做了很多优化处理。同 Docker 相比,rkt 还是缺少一些可整合的第三方接口。但是总体来说,rkt 良好的兼容性,使它可以很容易的实现公有云迁移,并完成快速部署。

另外它对 OCI(开放容器项目)的兼容性也不够好。虽然 rkt 已经摒弃 appc,全力拥抱 OCI,可是目前仍没有最终实现。面向 CRI(容器运行时接口)的 rklet 也仍在开发中。但考虑到新东家(CoreOS 刚刚被 Red Hat 收购)的技术背景,相信这一切都会好转。

Mesos 容器引擎

2018 年,Mesos 容器引擎占据了整个容器市场份额的 4%。作为 Apache 的开源项目,Mesos 提供了非常好的性能参数。同 rkt 类似,它也支持 Docker 和 appc 两种镜像。而且参考 Docker 对 OCI 的兼容方式,Mesos 对 OCI 标准的支持也将很快发布。

在谈到 Mesos 的用户案例时,但基础设施及 DevOps 专家 Ricardo Aravena 认为,尽管它可以应用到不同的情形下,它最好的场景还是结合 Spark 和 Flink 等计算引擎,实现一个面向大数据处理的平台。

不足的是,Mesos 容器引擎必须通过 Mesos 框架来运行这些容器,而不能像其它容器那样可以单独运行。

LXC 容器

替代 Docker 的五种容器选择 接下来,就是占据了最后 1% 份额的 LXC Linux 容器。其实 LXC 的出现要远早于 Docker,

它又被称作“服用了兴奋剂的 chroot”。LXC 本身也有一个非常活跃的技术社区。

LXC 容器主要由三部分组成,作为运行时的 lxc;用 go 编写的管理容器和镜像文件的守护进程 lxd;管理文件系统的 lxfuse。最开始的 lxc 只是一些容器管理 工具 的底层实现,lxd 则在 lxc 的基础上实现了新的图形界面和命令行工具,很好的改善了用户使用体验。

按照 Aquasec 的说法,lxd 用容器的方式仿真了一个类似虚拟机的操作体验,并避免了虚拟机额外的系统负载。而且 Windows 跟 MacOS 用户都可以访问 lxd 进程。

可惜的是,LXC 容器目前还不能同 kubernetes 进行整合,也没有实现对 OCI 标准的支持,当然我们希望正在开发的 lxcrun 可以解决这些问题。

OpenVZ

OpenVZ 作为 Linux 内核的一个功能扩展,在 2005 年发布了第一版。它是一个基于容器虚拟化的开源解决方案,允许在单操作系统上运行多虚拟环境或多虚拟专用服务器。因为所有虚拟容器共享了主机系统内核,这使得 OpenVZ 具有非常少的内存消耗。

因为 OpenVZ 操作系统级容器化的定位,它不太适合运行单一程序的场景。而且它也没有提供主流的 CRI 支持或 Kubernetes 整合。甚至有传言说 OpenVZ7 的稳定性也没有 OpenVZ6 好。

Containerd

Containerd 是一个符合工业标准的容器运行时,注重简洁、健壮性以及可移植性。它目前是 CNCF(云原生计算基金会)的孵化项目。Containerd 可以以守护进程的方式在 Linux 和 Windows 上运行。

Containerd 支持 OCI 镜像文件,与 gRPC 天然嵌合,而且具有完善的容器生命周期管理功能。更多内容可参阅 官方文档

一些其他的容器运行时:

  • Windows Server 容器。
  • Linux VServer。
  • Hyper-V 容器。
  • Unikernels(单一地址空间内核)。
  • Java 容器。

结语

毋庸置疑,Docker 仍然是目前最流行的容器,而且它还将流行很长一段时间。但是正如上文所分析的那样,在某些特殊的应用场景下,Docker 的优越性将不再那么明显。而且如果这些去 docker 化容器得到发展的话,将不可避免地波及整个 Docker 生态系统。

重点评估:Docker 仍然是王者,但是我们已经预见到其衰退的迹象

-2018 Sysdig 报道

OCI 标准的提出,让我们看到了容器技术标准化的进化趋势。在如何选择合适的容器工具这个问题上,我们 程序员 应该首先考虑 OCI 的兼容性实现,当然还包括可移植性、社区活跃度以及在实际生产环境中得以应用的数量(毕竟实践是检验真理的唯一标准)。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Math Adventures with Python

Math Adventures with Python

Peter Farrell / No Starch Press / 2018-11-13 / GBP 24.99

Learn math by getting creative with code! Use the Python programming language to transform learning high school-level math topics like algebra, geometry, trigonometry, and calculus! In Math Adventu......一起来看看 《Math Adventures with Python》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

html转js在线工具
html转js在线工具

html转js在线工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具