之前的找独服评价已经深入分析过“Docker是什么?”一个程序员应该如何理解容器docker?“想必大家对docker容器都有了更深层次和概念性的了解。显然,在全球范围内,Docker已经发展成为云计算的核心技术之一。
作为一种流行的容器管理技术,Docker最大的优势在于它可以将应用程序从计算环境中分离出来,允许开发者在同一台计算机上使用不同的技术。有了Docker,开发者可以让应用程序在同一台服务器上运行Python、Ruby、PHP、Node JS或任何其他语言,并将每个应用程序安装在一个单独的容器中,有独立的数据库引擎。
Docker被禁止
然而,8月13日正式生效的Docker最新服务条款却引起了国内IT行业的广泛关注。该条款明确指出,Docker公司提供的服务禁止被美国“实体名单”上的实体使用。
目前,中国IT企业被列入贸易管制的“实体名单”,包括华为、商汤、依图、远景、海康威视、大华、科大讯飞、美亚百科、易信科技、奇虎360、烽火科技集团、网力、日光科技、从云科技、中科曙光、广海等
而且不排除未来会有更多的中国IT企业被“邀请”进入这个“实体名单”。
虽然“实体列表”的禁令限制了Docker和Docker Hub等Docker服务的商业版本,但仍然给Docker中国的前景蒙上了一层阴影。
而且有业内人士指出,Docker最有价值的是Docker hub,而不是Docker软件本身。
开源仍然是最安全的选择。Linux基金会近日发布白皮书《了解开源技术与美国出口管制》,指出美国出口管制条例EAR明确豁免了大部分以开源形式呈现的软件和技术。
对于国内IT企业和网络安全企业来说,Docker“实体清单”的禁运其实已经敲响了警钟。是时候开始评估Docker的开源替代品了。
顶级码头工人替代品
Docker远不是一款完美的产品,有很多缺点。例如,它必须以root权限运行,停止容器将删除其中的所有信息(卷中的内容除外)。其他缺点还包括:安全性和隔离性不如VM,大规模管理不易(K8s应用),故障排除困难,不支持Windows。
其实Docker软件有很多优秀的替代品,很多在技术成熟度、稳定性、资源占用等方面都不亚于甚至优于Docker。
OpenVZ
OpenVZ是一种流行的基于Linux的操作系统级服务器虚拟化技术,可以在单个物理服务器上创建多个安全隔离的虚拟环境,从而提高服务器利用率和性能。虚拟服务器确保应用程序不会冲突,并且可以独立重启。
OpenVZ还提供了一个网络文件系统(NFS),允许从OpenVZ虚拟环境中访问网络磁盘文件。该工具支持IA64处理器的检查点和实时迁移,这是其他开源操作系统虚拟化软件所不能提供的。系统管理员可以使用虚拟服务器在物理服务器之间移动,无需最终用户干预,也无需昂贵的存储系统。
OpenVZ是一种开源技术,也是SWsoft的Virtuozzo虚拟化产品的基础。它为虚拟环境中的VLAN提供标准支持,从而允许在不同的网络上标记每个网络数据包。支持FUSE(用户空间的文件系统)。例如,它可以在虚拟环境中将FTP或SSH服务器显示为文件系统。
网站:https://openvz.org/
系统支持:Linux
大牧场主
Rancher是一种开源的容器管理技术,提供完整的容器基础设施服务,包括网络、存储服务、主机管理和负载均衡。它支持各种基础架构,可以简单可靠地部署和管理应用程序。
网站:https://rancher.com
支持的系统:Linux
纳米盒
Nano是开发者理想的DevOps平台。Nanobox可以完成基础设施的所有构建、配置和管理,因此您可以专注于代码而不是配置。
有了Nanobox,你可以自由地创建一个一致的、隔离的开发环境,可以轻松地与任何人共享,可以在任何主机(AWS、数字海洋、Azure、Google等)上实现。).开发人员可以在本地计算机和云提供商之间一致地运行他们的应用程序。
通过使用Nanobox仪表板,您可以非常轻松地管理生产应用程序。Nanobox还支持零停机部署和扩展,并通过统计仪表板和历史日志输出来监控应用程序的状态。
网站:https://nanobox.io/
系统支持:基于网络
波德曼
PodMan是一个虚拟化的容器管理器,可用于Linux发行版。它的特别之处在于不需要运行Daemon,直接运行在runC上。PodMan允许我们作为没有root权限的用户运行容器,从安全角度来看这是极其重要的!
通过Podman,我们不仅可以检查OCI图像,甚至可以下载它们,还可以从一个存储库中提取元素,并将它们直接移动到另一个存储库中。没有必要通过我们的设备传输图像文件。我们可以在不下载的情况下检查或使用图像的组件。POD还允许您运行默认启用了Systemd的容器,无需任何修改。
POD支持套接字激活,因此我们可以使用该系统来配置套接字,并访问用于与该工具通信的远程API。它可以通过UID和名称空间来分隔,这在运行容器时提供了额外的隔离层。
下载链接:
Podman简介(Red Hat Enterprise Linux 7.6测试版)
系统支持:Linux
哈伊马角
RKT属于核心操作系统发行版,是专门为容器虚拟化和处理开发的。如今,它已经成为Docker最大的竞争对手之一。RKT可以在诸如ArchLinux、Core OS、Fedora、NixOS等Linux平台上工作。
CORE决定启动RKT的一个主要原因是安全。在1.1版本之前,Docker需要以root身份运行,这是一个非常严重的漏洞,允许root级别的攻击。相反,RKT允许我们对Linux权限使用标准的组处理,从而允许容器在被没有root权限的用户创建后运行。
Docker具有易于集成的优势,而RKT需要更多的手动安装和配置。无论如何,它仍然是Docker的一个很好的替代品,因为它允许我们使用APPC映像(应用程序容器映像)以及Docker映像。反过来,它允许与Kubernetes和AWS Orchestrator集成。
下载链接:https://github.com/rkt/rkt
系统支持:Linux
奇异
Singularity是一个面向HPC(高性能计算)的操作系统虚拟器,因为它不需要与具有root权限的用户一起运行,而且由于它的隔离级别,它非常适合在共享空间中使用。其安全理念是“不安全的客户端运行不安全的容器”,彻底改变了安全范式。
关于独特性的另一个重要事实是,我们可以导入和使用我们已经拥有的Docker图像。我们甚至可以在本地编辑容器,然后在共享环境中挂载它,因为它可以在没有root权限的情况下挂载。也可以使用基本的文件传输协议(如RSYNC、HTTP、SCP等。)进行传输。
下载链接:
系统支持:Linux
库伯内特斯(K8s)
Kubernetes是一个用于自动组织和管理容器化应用程序的开源系统。如果您想使用流行的开源Linux容器设计应用程序,Kubernets可能是为私有、公共或混合云托管创建云原生应用程序的最理想方式之一。
Kubernetes自动化了容器化应用程序的部署、管理和扩展,从而使这一过程更加简单、快速和高效。用户现在可以一键更新他们在集群中使用的Kubernetes的核心版本。保持Kubernetes集群最新是非常容易的,因为现在不需要重新部署集群或应用程序就可以做到。
Kubernetes是一个由云本地计算基金会(CNCF)和Linux基金会管理的开源项目。这可以确保项目得到大型开源社区的最佳实践和想法的支持,也消除了依赖单一提供商的风险。
网站:https://kubernetes.io/
系统支持:基于Web和Linux
Red Hat OpenShift容器平台
Red Open Shift容器平台是一个开源的企业Kubernetes平台,可用于开发、部署和管理跨企业、私有和公共云架构的容器化应用程序。
网址:
https://www.openshift.com/products/container-platform
系统支持:Linux、Windows
阿帕奇Mesos
Mesoso是一款基于Linux内核的开源集群管理工具,可以运行在任何平台上(Linux、Windows或OSX)。它还为应用程序的资源管理和规划提供了API。CPU、内存、存储等资源可以从专用服务器或虚拟机中提取,这使得弹性系统易于构建、高效且容错。
Mesos使用一个双层调度系统,在这个系统中,它决定分配给每个框架的资源数量,而框架决定要接受的资源以及在这些资源上运行哪些任务。您可以扩展到50,000个节点,在不同的框架之间共享集群,并保持优化。
Mesos允许集群运行应用程序框架,并在不同的服务器之间分配负载,从而避免过载并获得最佳性能。Mesos常用于Java、Python、Scala和R应用中。
网站:http://mesos.apache.org/
系统支持:Linux、OSX和Windows
操作系统
FreeBSD以功能、速度、安全、稳定著称。它来自BSD,BSD是部署在加州大学伯克利分校的UNIX的改编版本。它被广泛的社区部署和遵循。FreeBSD提供了许多独特的功能,尤其是它以创建优秀的互联网或内部网服务器而闻名。FreeBSD可以在高负载下提供强大的网络服务,内存利用效率高,可以快速响应百万级并发进程。
FreeBSD还为连接器和完整平台提供了改进的网络操作系统功能,支持从Intel倡导的高端连接器到ARM、MIPS、PowerPC硬件平台。FreeBSD拥有超过23,000个库和外观应用,可以支持桌面、助手、设备和集成媒体的应用。
网站:https://www.freebsd.org/
系统支持:Unix和基于网络
无赖
流浪者是一个工具,自动创建和配置便携式和可运行的虚拟机。与Docker这样的DevOps工具相比,vanguard的一大优势就是任何计算机科学家/程序员/开发者(甚至是使用Windows的人)都可以快速掌握和使用,因为vanguard可以配置和自动创建虚拟机。
vagger安装在开发人员的电脑上,面向开发环境,而不是生产环境。即使是游民的开发公司也不建议在生产环境中使用游民。流浪者是跨平台的,支持的系统包括:Mac、Windows、CentOS、Debian。流浪者的定位是在开发者之间,安装可移植的,可以运行开发环境的工具。
默认情况下,vagger使用Virtual Box进行虚拟化,但它可以与任何虚拟化软件配合使用。流浪汉文件配置文件的语法也很简单。
网站:https://www.vagrantup.com/
系统支持:Debian、centOS、Arch Linux、Linux、FreeBSD、macOS和Microsoft Windows
文件大小:210 MB(适用于Windows)
LXC
LXC是一种操作系统虚拟化技术,它允许用户独立创建和运行多个虚拟Linux环境。
与Docker不同,LXC可以被视为一个完整的操作系统。另一方面,Docker只能运行单个应用,对OS也有一定的限制。与Docker相比,LXC是一个更轻便、更安全的选择,因为它消耗的资源更少,并且不需要以root身份运行。
以上优势的代价是复杂度的增加。除此之外,我们还得添加坏文档。通常,当我们使用容器时,我们想要的是快速方便地创建我们的工作环境。因此,LXC,一种替代方法,更适合高级用户。
网站:https://linuxcontainers.org/
系统支持:Linux
这些是可以在多种操作系统上使用的12种Docker替代方案。如果你对Docker有更好的替代产品推荐,请在本文讨论区提交。
评论前必须登录!
注册