Docker的替代方案
Docker的最大优点是能将应用与计算环境分离,允许开发者在同一台计算机上使用不同的技术。通过Docker,开发者可以使应用程序在同一服务器上运行Python、Ruby、PHP、Node JS或任何其他语言,并将每个应用程序安装在具备独立数据库引擎的单独容器中。
Docker远非完美的产品,存在很多缺点。例如必须以root权限运行,并且停止容器将删除其中的所有信息(卷中的内容除外)。其他缺点还包括:安全性和隔离性不如VM、大规模不易管理(K8s应用而生)、问题排查较难、不支持Windows等。
Docker的替代产品
1.RKT
RKT属于Core OS发行版,专为容器虚拟化和处理而开发。如今,它已成为Docker最大的竞争对手之一。RKT可在诸如ArchLinux、Core OS、Fedora、NixOS等Linux平台上工作。
Core OS决定启动RKT的主要原因之一就是安全性。在1.1版之前,Docker需要以root用户身份运行,这是一个非常严重的漏洞,允许超级用户级别的攻击。相反,RKT允许我们对Linux权限使用标准的组处理,从而允许容器在没有root特权的用户创建后运行。
Docker的优势是易于集成,而RKT需要更多的手动安装和配置。无论如何,它仍然是Docker的很好替代品,因为它允许我们使用APPC映像(App容器映像)以及Docker映像。反过来,它也允许与Kubernetes和AWS Orchestrator集成。
下载链接:https://github.com/rkt/rkt
系统支持:Linux
2.Podman
PodMan是一个虚拟化的容器管理器,可用于Linux发行版,它的特殊之处在于它不需要运行Daemon,而是直接在runC上运行.PodMan允许我们以没有root特权的用户身份运行容器,从安全层面来看这极为重要!
通过Podman,我们不仅可以检查OCI映像,甚至不下载它们,还可以从一个存储库中提取元素并将其直接移动到另一个存储库中,镜像文件无需通过我们的设备传输。我们无需下载镜像即可检查或使用其组件。Podman还允许运行默认启用Systemd的容器,无需进行任何修改。
Podman支持套接字激活,因此我们可以使用该系统来配置套接字,并可以访问用于与该工具进行通信的远程API。它能够通过名称空间使用UID分隔,这在运行容器时提供了额外的隔离层。
3.Rancher
Rancher是一种开源的容器管理技术,提供完整的容器基础设施服务,包括网络、存储服务、主机管理和负载均衡等,支持各种基础架构,可以简单可靠地部署和管理应用程序。