Docker 被禁?还有千千万万个 Docker 站起来!!!

共 5655字,需浏览 12分钟

 ·

2020-08-28 18:17

来源:安全牛
地址:https://www.aqniu.com/news-views/69501.html
众所周知,在全球范围内,Docker 已经发展成为云计算的核心技术之一。
作为流行的容器管理技术,Docker 的最大优点是能将应用与计算环境分离,允许开发者在同一台计算机上使用不同的技术。
通过 Docker,开发者可以使应用程序在同一服务器上运行 Python、Ruby、PHP、Node JS 或任何其他语言,并将每个应用程序安装在具备独立数据库引擎的单独容器中。
但是,8 月 13 日生效的 Docker 公司最新服务条款引起了国内 IT 业界的广泛关注。该条款明确指出,Docker 公司提供的服务,禁止美国 “实体清单” 上的实体使用。
目前中国 IT 公司被列入贸易管制 “实体清单” 的企业包括:华为、商汤、依图、旷视、海康威视、大华、科大讯飞、美亚柏科、颐信科技、奇虎 360、烽火科技集团、东方网力、达闼科技、云从科技、中科曙光、海光等。
而且,未来不排除更多的中国 IT 公司会被 “请进” 这个 “实体清单”。
虽然受 “实体清单” 禁令限制的是 Docker 商业版及 Docker 的其它服务,比如 Docker Hub,但这依然给 Docker 中国的前景蒙上了阴影。
而且,有业内人士指出:Docker 这家公司到目前,最有价值的不是 Docker 软件本身,而是 Docker hub。
开源,当下依然是最安全的选择。Linux 基金会不久前发布《了解开源科技和美国出口管制》白皮书指出,美国出口管制条例 EAR 明确豁免了大多数以开源形式呈现的软件和技术。
对于国内的 IT 企业和网络安全企业来说,Docker 的 “实体清单” 禁运,事实上已经敲响了警钟,是时候开始评估 Docker 的开源替代品了。

顶级 Docker 替代品

Docker 远非完美的产品,存在很多缺点。例如必须以 root 权限运行,并且停止容器将删除其中的所有信息(卷中的内容除外)。其他缺点还包括:安全性和隔离性不如 VM、大规模不易管理(K8s 应用而生)、问题排查较难、不支持 Windows 等。
事实上,目前 Docker 软件有不少优秀的替代品,其中不少产品的技术成熟度、稳定度和资源占用方面的表现不输甚至优于 Docker。
以下,我们推荐十个 Docker 的最佳替代产品,您可以留言说出你眼中最好的产品。

OpenVZ


OpenVZ 是基于 Linux 的流行的操作系统级服务器虚拟化技术,可在单个物理服务器中创建多个安全且隔离的虚拟环境,从而提高服务器利用率和性能。虚拟服务器确保应用程序不会冲突,并且可以独立重新启动。
OpenVZ 还提供了一个网络文件系统(NFS),允许从 OpenVZ 虚拟环境访问网络磁盘文件。该工具支持 IA64 处理器的检查点和实时迁移,此功能是其他开源操作系统虚拟化软件所无法提供的,系统管理员无需最终用户干预即可使用虚拟服务器在物理服务器之间移动,而无需昂贵的存储系统。
OpenVZ 是一种开源技术,也是 SWsoft 的 Virtuozzo 虚拟化产品的基础。它为虚拟环境中的 VLAN 提供了标准支持,从而允许在不同网络上标记每个网络数据包。支持 FUSE(用户空间中的文件系统),例如,它可以将 FTP 或 SSH 服务器显示为虚拟环境中的文件系统。
网站:https://openvz.org/ 
系统支持:Linux

Rancher

Rancher 是一种开源的容器管理技术,提供完整的容器基础设施服务,包括网络、存储服务、主机管理和负载均衡等,支持各种基础架构,可以简单可靠地部署和管理应用程序。
网站:https://rancher.com
支持系统:Linux

Nanobox

Nanobox 是开发人员的理想 DevOps 平台。Nanobox 可以完成基础结构的所有构建,配置和管理,因此您可以专注于代码而不是配置。
借助 Nanobox,您可以自由地创建一致且隔离的开发环境,该环境可以轻松地与任何人共享,并且可以在任何主机(AWS、Digital Ocean、Azure、Google 等)上实现。开发人员可以在本地计算机和云提供商之间一致地运行其应用程序。
你可以非常轻松地使用 Nanobox 仪表板管理生产应用程序,Nanobox 还支持零停机时间部署和扩展,并通过统计信息显示板以及历史日志输出来监视应用程序的状态。
网站:https://nanobox.io/ 
系统支持:基于 Web

Podman

PodMan 是一个虚拟化的容器管理器,可用于 Linux 发行版,它的特殊之处在于它不需要运行 Daemon,而是直接在 runC 上运行.PodMan 允许我们以没有 root 特权的用户身份运行容器,从安全层面来看这极为重要!
通过 Podman,我们不仅可以检查 OCI 映像,甚至不下载它们,还可以从一个存储库中提取元素并将其直接移动到另一个存储库中,镜像文件无需通过我们的设备传输。我们无需下载镜像即可检查或使用其组件。Podman 还允许运行默认启用 Systemd 的容器,无需进行任何修改。
Podman 支持套接字激活,因此我们可以使用该系统来配置套接字,并可以访问用于与该工具进行通信的远程 API。它能够通过名称空间使用 UID 分隔,这在运行容器时提供了额外的隔离层。
下载链接:https://developers.redhat.com/blog/2018/08/29/intro-to-podman/ 
系统支持:Linux

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 不熟悉的关注公众号 Java 技术栈在后台搜索获取系列 Docker 教程。
无论如何,它仍然是 Docker 的很好替代品,因为它允许我们使用 APPC 映像(App 容器映像)以及 Docker 映像。反过来,它也允许与 Kubernetes 和 AWS Orchestrator 集成。
下载链接:https://github.com/rkt/rkt
系统支持:Linux

Singularity

Singularity 是用于 HPC(高性能计算)的操作系统虚拟器,因为它不需要与具有 root 特权的用户一起运行,并且由于其隔离级别而非常适合在共享空间中使用。其安全理念是 “不安全的客户端运行不安全的容器”,这完全改变了安全范式。
关于 Singularity 的另一个重要事实是,我们可以导入和使用我们已经拥有的 Docker 映像。我们甚至可以在本地编辑容器,然后将其挂载到共享环境中,因为它不需要 root 特权即可挂载。也可以使用基本文件传输协议(例如 RSYNC、HTTP、SCP 等)进行传输。
下载链接:https://sylabs.io/singularity/ 
系统支持:Linux

Kubernetes(K8s)

Kubernetes 是一个用于自动组织和管理容器化应用程序的开源系统。如果要使用流行的开源 Linux 容器设计应用程序,那么 Kubernets 可能是为私有,公共或混合云托管创建云原生应用程序最理想的方法之一。
Kubernetes 使容器化应用程序的部署,管理和扩展自动化,可以更轻松,快速和高效地执行该过程。用户现在可以一键式更新来更新他们在集群中使用的 Kubernetes 的核心版本。使 Kubernetes 集群保持最新状态变得相当容易,因为现在无需重新部署集群或应用程序就可以做到这一点。
Kubernetes 是一个开源项目,由 Cloud Native Computing Foundation(CNCF)和 Linux Foundation 管理。这可以确保该项目得到大型开源社区的最佳实践和想法的支持,此外还消除了依赖单个提供商的风险。
网站:https://kubernetes.io/ 
系统支持:基于 Web 和 Linux

Red Hat OpenShift Container Platform

Red Hat OpenShift Container Platform 是一个开源的企业级 Kubernetes 平台,可用于开发、部署和管理横跨企业内部、私有云和公有云架构中的容器化应用。
网站:https://www.openshift.com/products/container-platform
系统支持:Linux、Windows

Apache 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

FreeBSD 以其功能,速度,安全性和稳定性而著称。它来自 BSD,这是在加州大学伯克利分校部署的 UNIX 改编版。它被广泛的社区部署和追随。FreeBSD 提供了许多独特的功能,尤其以创建出色的 Internet 或 Intranet 服务器而闻名。FreeBSD 可以在高负载下提供强大的网络服务,内存利用效率高,可以快速响应数百万个并发进程。
FreeBSD 还提供了针对连接器和完整平台的改进的网络操作系统功能,支持从 Intel 推崇的高端连接器到 ARM、MIPS 和 PowerPC 硬件平台。FreeBSD 拥有 23,000 多个库和外观应用程序,可支持用于台式机、助手、设备和集成媒体的应用程序。
网站:https://www.freebsd.org/ 
系统支持:Unix 和基于 Web 的

Vagrant

Vagrant 是自动创建和配置可移植可运行虚拟机的工具。与 Docker 这样的 DevOps 工具相比,Vagrant 的一大优点是,任何计算机科学家 / 程序员 / 开发人员(甚至是使用 Windows 的人)都能快速掌握并使用它,因为 Vagrant 能配置并自动创建虚拟机。
Vagrant 安装在开发人员的计算机上,面向开发环境,而不是生产环境。甚至 Vagrant 的开发公司都不推荐在生产环境中使用 Vagrant。Vagrant 是跨平台的,支持的系统包括:Mac、Windows、CentOS 和 Debian。Vagrant 的定位是开发人员之间的,安装可移植且可运行开发环境的工具。
默认情况下,Vagrant 使用 Virtual Box 进行虚拟化,但可与任何虚拟化软件一起使用,Vagrantfile 配置文件的语法也很简单。
网站: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
以上是十种可以在多操作系统上使用的顶级 Docker 替代软件。
如果您有更好的 Docker 替代产品推荐,请提交在留言区。

推荐阅读:

完全整理 | 365篇高质技术文章目录整理

算法之美 : 栈和队列

主宰这个世界的10大算法

彻底理解cookie、session、token

浅谈什么是递归算法

专注服务器后台技术栈知识总结分享

欢迎关注交流共同进步

码农有道 coding


码农有道,为您提供通俗易懂的技术文章,让技术变的更简单

嘿,你在看吗
浏览 51
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报