In Docker bieten Container einen effizienten Mechanismus zum Kombinieren von Komponenten zu Anwendungs- und Service-Stacks und zur Aktualisierung und Wartung von Softwarekomponenten. Docker-Container sind nicht nur voneinander, sondern auch vom zugrunde liegenden System isoliert und können auf jedem ausgeführt werden Maschine, die Container-Laufzeitumgebungen unterstützt.
Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Docker-1.13.1-Version, Dell G3-Computer.
Eines der Ziele der modernen Softwareentwicklung ist, dass Anwendungen beide auf demselben Host oder Cluster ausgeführt und voneinander isoliert werden können, sodass sie den Betrieb oder die Wartung des anderen nicht übermäßig beeinträchtigen Dies wird jedoch schwieriger, da Pakete, Bibliotheken und andere Softwarekomponenten ausgeführt werden müssen.
Eine der Lösungen für dieses Problem ist die Verwendung einer virtuellen Maschine, die Anwendungen auf derselben Hardware vollständig isoliert und Konflikte zwischen Softwarekomponenten und Konkurrenz zwischen Hardwareressourcen minimiert. Allerdings ist die virtuelle Maschine relativ groß, jede virtuelle Maschine erfordert ein eigenes Betriebssystem, ist daher normalerweise GB groß und schwierig zu warten und zu aktualisieren.
Im Gegensatz zu virtuellen Maschinen isolieren Container die Ausführungsumgebungen von Anwendungen voneinander, teilen sich jedoch den zugrunde liegenden Betriebssystemkernel. Sie werden normalerweise in Megabyte gemessen, verbrauchen weitaus weniger Ressourcen als virtuelle Maschinen und starten fast sofort. Ohne großen Aufwand und Overhead ist es möglich, auf derselben Hardware dichter zu packen.
Container bieten einen effizienten und hochgranularen Mechanismus, um Softwarekomponenten in den verschiedenen Anwendungs- und Service-Stacks zu kombinieren, die moderne Unternehmen benötigen, und um diese Softwarekomponenten auf dem neuesten Stand und gewartet zu halten.
Docker ist ein Open-Source-Projekt, das die Erstellung von Containern und Container-basierten Anwendungen erleichtert. Ursprünglich für Linux entwickelt, läuft es jetzt auch unter Windows und MacOS.
Docker war schon immer in der Lage, Entwicklern dabei zu helfen, schnell leichte und portable Software-Container zu erstellen und so die Anwendungsentwicklung, das Testen, die Bereitstellung und viele andere Aspekte zu vereinfachen. Konkret handelt es sich um eine Softwareplattform zum Erstellen von Anwendungen, die eine kleine und leichte Ausführungsumgebung bereitstellt, die den Betriebssystemkernel gemeinsam nutzt, ansonsten aber unabhängig läuft.
Obwohl es das Konzept von Containern schon seit langem gibt, hat das 2013 gestartete Open-Source-Projekt Docker maßgeblich dazu beigetragen, diese Technologie bekannt zu machen und den Trend der Containerisierung und Microservices in der Softwareentwicklung voranzutreiben, der später als Cloud-native-Entwicklung bekannt wurde.
Docker-Container bieten eine Möglichkeit zum Erstellen von Unternehmensanwendungen und Geschäftsprozessanwendungen, die einfacher zu installieren, zu warten und zu verschieben sind als herkömmliche Anwendungen.
Docker-Container unterstützen die Isolierung: Docker-Container ermöglichen die Isolierung von Anwendungen nicht nur voneinander, sondern auch vom zugrunde liegenden System. Dies macht nicht nur den Software-Stack sauberer, sondern erleichtert auch die Nutzung von Systemressourcen wie CPU, GPU, Speicher, I/O, Netzwerk usw. durch containerisierte Anwendungen. Außerdem wird sichergestellt, dass Daten und Code unabhängig bleiben.
Docker-Container unterstützen Portabilität: Docker-Container laufen auf jeder Maschine, die die Container-Laufzeitumgebung unterstützt. Anwendungen müssen nicht an das Host-Betriebssystem gebunden sein, sodass die Anwendungsumgebung und die zugrunde liegende Betriebsumgebung sauber und minimal gehalten werden können.
Containerisiertes MySQL läuft beispielsweise auf den meisten Linux-Systemen, die Container unterstützen, und alle Abhängigkeiten der Anwendung werden normalerweise im selben Container bereitgestellt. Containerbasierte Anwendungen können problemlos von einem lokalen System in eine Cloud-Umgebung oder vom Laptop eines Entwicklers auf einen Server verschoben werden, sofern das Zielsystem Docker und alle damit verwendeten Tools von Drittanbietern unterstützt, z als Kubernetes.
Typischerweise müssen Docker-Container-Images für eine bestimmte Plattform erstellt werden. Beispielsweise können Windows-Container nicht unter Linux ausgeführt werden und umgekehrt. Bisher bestand eine Möglichkeit, diese Einschränkung zu umgehen, darin, eine virtuelle Maschine zu starten, auf der eine Instanz des gewünschten Betriebssystems ausgeführt wird, und den Container innerhalb der virtuellen Maschine auszuführen.
Später entwickelte das Docker-Team jedoch eine elegantere Lösung namens Manifest, mit der Images mehrerer Betriebssysteme parallel gepackt werden können. Obwohl sich das Manifest noch im experimentellen Stadium befindet, deutet es darauf hin, dass Container zu einer plattformübergreifenden Anwendungslösung und einer umgebungsübergreifenden Anwendungslösung werden könnten.
Docker-Container ermöglichen Zusammensetzbarkeit: Die meisten Geschäftsanwendungen bestehen aus mehreren unabhängigen Komponenten, Webservern, Datenbanken und Caches. Docker-Container können diese Komponenten zu einer leicht austauschbaren Funktionseinheit kombinieren. Jeder Teil wird von einem anderen Container bedient und kann unabhängig von anderen Containern gewartet, aktualisiert, ausgetauscht und geändert werden.
Dies ist im Wesentlichen das Microservices-Modell für das Anwendungsdesign. Durch die Aufteilung der Anwendungsfunktionalität in unabhängige, eigenständige Dienste bietet das Microservices-Modell eine Lösung für den langsamen Prozess der traditionellen Entwicklung und monolithische starre Anwendungen. Leichte und tragbare Container ermöglichen eine einfachere Erstellung und Wartung von Microservices-basierten Anwendungen.
Docker-Container vereinfachen die Orchestrierung und Skalierung: Da Container leichtgewichtig sind und wenig Overhead verursachen, können mehr Container auf einem bestimmten System gestartet werden, und Container können auch verwendet werden, um Anwendungen über Systemcluster hinweg zu skalieren und Dienste nach oben oder unten zu skalieren, um Spitzenzeiten zu erreichen Ressourcen fordern oder schonen.
Die meisten Versionen unternehmenstauglicher Tools zum Bereitstellen, Verwalten und Skalieren von Containern werden über Projekte von Drittanbietern bereitgestellt. Das wichtigste davon ist Googles Kubernetes, ein automatisiertes System, das die Bereitstellung und Skalierung von Containern sowie die Konnektivität, den Lastausgleich und die Verwaltung von Containern unterstützt. Kubernetes bietet außerdem Möglichkeiten zum Erstellen und Wiederverwenden von Multi-Container-Anwendungen oder „Helm-Charts“, sodass komplexe Anwendungs-Stacks nach Bedarf erstellt und verwaltet werden können.
Docker verfügt außerdem über einen integrierten Swarm-Orchestrierungsmodus. Derzeit wird dieser Modus selten verwendet und Kubernetes ist zur Standardauswahl geworden. Tatsächlich ist Kubernetes mit der Docker Enterprise Edition gebündelt.
Empfohlenes Lernen: „Docker-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWofür werden Docker-Container verwendet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!