Wie vergleicht sich Docker mit OpenShift?

70

Docker und OpenShift sind beide Frameworks zur Implementierung eines PaaS-Dienstes.

Wie vergleichen sie sich in Architektur und Funktionen?

w00t
quelle

Antworten:

112

Der Hauptunterschied besteht darin, dass Docker als Projekt nur auf den Laufzeitcontainer ausgerichtet ist, während OpenShift (als System) sowohl den Laufzeitcontainer als auch die REST-API, die Koordination und die Webschnittstellen zum Bereitstellen und Verwalten einzelner Container enthält.

OpenShift und Docker vergleichen nur die Laufzeitcontainer und verwenden Kernel-Isolationsfunktionen, um Mandantenprozesse getrennt zu halten. Für Docker hauptsächlich über LXC und für OpenShift hauptsächlich über SELinux und Multiple Category Security (MCS). Beide verwenden cgroups, um die CPU, den Speicher und die E / A der Mandanten zu begrenzen. Upstream OpenShift prüft LXC, um den langfristigen Aufwand zu reduzieren.

Docker verwendet AUFS für die erweiterte Freigabe von Datenträgern und Dateien beim Schreiben. OpenShift erfordert ein solches System weder und ist auch nicht mit diesem kompatibel.

Innerhalb des Containers modelliert OpenShift Funktionseinheiten (Webserver, Datenbank) über "Cartridges", bei denen es sich um eine Reihe von Shell-Skript-Hooks handelt, die beim Aufrufen des Systems aufgerufen werden. Die API wird hier beschrieben . Eine Kassette ähnelt in etwa einem Docker-Image.

Openshift beschreibt auch die API, über die ein Broker (Koordinator) mit Knoten (Servern, die mehrere Mandantencontainer hosten) kommuniziert, um Endpunkte in diesem Container aufzurufen.

BEARBEITET ZUM HINZUFÜGEN: Ab Juni 2015 läuft OpenShift Origin 1.0 auf Docker und Kubernetes, und Sie können Multi-Container-Apps erstellen und entwickeln, die zur Docker-Laufzeit ausgeführt werden. OpenShift fügt zusätzlich zu Kube und Docker Build-, Image-Workflow- und Promotion-Funktionen sowie sichere Container-Cluster-Vorgänge hinzu

Clayton
quelle
2
@ Clayton Defekter Link. Die Cartridge-API wird jetzt hier beschrieben .
Vojtech Vitek
Der Link wurde behoben und weitere Informationen zu OpenShift und Docker
Clayton
@ Clayton, danke für diesen hilfreichen Beitrag. Bedeutet das bei GearD, dass Patronen veraltet sind, wenn man GearD verwendet? Ich denke schon von Ihrem Beitrag, wollte aber klarstellen. Vielen Dank!
AnneTheAgile
AuFS Layered Filesystem, LXC
Sari
12

Ich dachte, ich sollte die Antworten auf diese Frage mit Informationen aktualisieren, die Ende 2018 verfügbar sind.

Die derzeitige Situation ist etwas komplizierter als zu dem Zeitpunkt, als die Frage ursprünglich gestellt wurde. Derzeit ist Docker Inc. der Hauptentwickler von Docker und Moby - derzeit das Upstream-Projekt für die Docker-Laufzeit und die kommerzielle Enterprise-Edition von Docker, fantasievoll Docker Enterprise Edition genannt.

Eine zeitgemäße Analyse dieser Frage würde zu einem Vergleich von Docker Enterprise Edition mit RedHat OpenShift führen. Diese Containerplattformen stehen in direktem Wettbewerb miteinander und beide gelten als Kubernetes-Distributionen, die vor Ort und in der Cloud ausgeführt werden können. Zum Zeitpunkt des Schreibens ist Docker-EE von Docker Inc. führend in Bezug auf Funktionen und Umsatz, aber es gibt eine starke Konkurrenz durch die Public-Cloud-Anbieter, die kubernetes Platform (s) als Service anbieten und starten um in fortgeschrittenere Serverless Container Platforms zu wechseln.

Softwareentwickler
quelle
8

Ein Bild sagt mehr als tausend Worte:

Geben Sie hier die Bildbeschreibung ein

Jaison Varghese
quelle
2

Ich habe in den letzten zwei Jahren einige interessante Lesungen zu diesem Thema gefunden:

Minghua
quelle
2

Hier ist bei weitem die beste Erklärung für Anfänger. https://deis.com/blog/2016/kubernetes-illustrated-guide/

Dies ist kein Scherz, manchmal müssen wir die Dinge so betrachten, wie es ein Kind tun würde, um wirklich zu verstehen.

Ich würde nicht sagen, dass sie sogar vergleichbar sind. Openshift ist eine Unternehmenslösung von redhat, die auf Kubernetes aufbaut. Kubernetes ist nur ein Framework zur Organisation und Automatisierung der Arbeit mit Docker-Containern. Ich würde mit dem Video beginnen und dann Kuperneten auf einer niedrigeren Ebene betrachten. Wenn Sie sich wohl fühlen, schauen Sie sich die Funktionen an, die OpenShift hinzufügt.

Justin Ross
quelle
1
OpenShift ist nicht nur eine Unternehmensversion von Kubernetes, sondern bietet darüber hinaus eine Menge Mehrwert. Kubernetes selbst ist eigentlich kein Endbenutzerprodukt, sondern nur ein Projekt, das bei der Verwaltung von Containern hilft. Sie müssen eine Reihe weiterer Projekte mit Kubernetes hinzufügen, um es für Entwickler benutzerfreundlicher zu machen. Zum Beispiel Metriken, aggregierte Protokollierung, Build- und Bereitstellungsautomatisierung, optional mit Jenkins. All diese Dinge und mehr werden mit OpenShift sofort ausgeliefert, da Sie sie selbst mit Kubernetes installieren müssen.
Graham Dumpleton
Hallo Justin, Guide Link ist tot
Matas Vaitkevicius
0

Openshift ist eher eine Abstraktionsschicht für die Container-Orchestrierung. Openshift verwendet intern Kubernetes für die Container-Orchestrierung. Kubernetes ist ein Container-Orchestrierungssystem für Docker-Container, das im Vergleich zum Docker-Schwarm umfangreicher ist.

Openshift ist die perfekte Plattform für die Bereitstellung einer Unternehmensanwendung, da es die Source-to-Image-Funktion (S2I), die Container-Orchaestrierung, die Serviceerkennung, die Skalierung der Services und das Erstellen von Pipelines bietet. All dies erfolgt sowohl mit der CLI als auch mit dem OpenShift-Dashboard, das eine gute Benutzeroberfläche bietet. Docker verfügt über einen Docker-Schwarm für die Container-Orchestrierung, aber viele Dinge müssen manuell ohne benutzerfreundliche Schnittstellen ausgeführt werden.

Joydip Kumar
quelle