Docker 被禁,有哪些開源產品能夠替代

來源:安全牛linux



衆所周知,在全球範圍內,Docker已經發展成爲雲計算的核心技術之一。git


做爲流行的容器管理技術,Docker的最大優勢是能將應用與計算環境分離,容許開發者在同一臺計算機上使用不一樣的技術。經過Docker,開發者可使應用程序在同一服務器上運行Python、Ruby、PHP、Node JS或任何其餘語言,並將每一個應用程序安裝在具有獨立數據庫引擎的單獨容器中。程序員


可是,8月13日生效的Docker公司最新服務條款引發了國內IT業界的普遍關注。該條款明確指出,Docker公司提供的服務,禁止美國「實體清單」上的實體使用。github



目前中國 IT 公司被列入貿易管制「實體清單」的企業包括:華爲、商湯、依圖、曠視、海康威視、大華、科大訊飛、美亞柏科、頤信科技、奇虎360、烽火科技集團、東方網力、達闥科技、雲從科技、中科曙光、海光等。web


並且,將來不排除更多的中國IT公司會被「請進」這個「實體清單」。數據庫


雖然受「實體清單」禁令限制的是Docker商業版及Docker的其它服務,好比Docker Hub,但這依然給Docker中國的前景蒙上了陰影。apache


並且,有業內人士指出: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的很好替代品,由於它容許咱們使用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替代產品推薦,請提交在留言區。



後臺回覆「加羣」,帶你進入高手如雲交流羣


推薦閱讀:

雲計算二十年簡史

CPU 訪問硬盤速度很慢的緣由找到了

UNIX、Linux、IOS、Android、鴻蒙之間的關係

進程間通訊,你都會了嗎

如何輕鬆記住 Linux 命令

10 分鐘部署一個 Kubernetes 集羣

阿里雲深刻淺出K8s與CDN排坑指南免費領取

計算機極簡發展史

5分鐘給你講清楚Kubernetes

幾款實時查看網卡流量的工具

從零認識 iptables

Linux經常使用命令 &  實用命令萬字總結

容易被遺忘的10個Linux命令,很實用!

經典!服務端TCP鏈接的TIME_WAIT過多

8 個問題完全搞透 DNS 協議

三張圖完全搞懂iptables和netfilter

強烈安利的幾款畫圖工具

故障排查:K8s中Pod沒法正常解析域名

網絡排錯大講解~

HTTP/3 原理實戰

OVS 和 OVS-DPDK 對比

微軟出品的最新K8S學習指南3.0下載



喜歡,就給我一個「在看」



10T 技術資源大放送!包括但不限於:雲計算、虛擬化、微服務、大數據、網絡、Linux、Docker、Kubernetes、Python、Go、C/C++、Shell、PPT 等。在公衆號內回覆「1024,便可免費獲取!!

本文分享自微信公衆號 - Linux雲計算網絡(cloud_dev)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索