Was bedeutet Docker
Docker ist hochaktuell, weil er es ermöglicht, viel mehr Anwendungen auf denselben alten Servern zum Laufen zu bringen, und er macht es auch sehr einfach, Programme zu paketieren und zu versenden.
Docker-Container, die auf Docker (mehr dazu Docker Seminar) Engine laufen:
Historie
Die Einführung von Docker im Jahr 2013 leitete eine Revolution in der Anwendungsentwicklung ein - durch die Demokratisierung von Software-Containern. Docker entwickelte eine Linux-Container-Technologie - eine Technologie, die portabel, flexibel und einfach zu implementieren ist. Docker öffnete libcontainer und schloss sich mit einer weltweiten Gemeinschaft von Mitwirkenden zusammen, um die Entwicklung voranzutreiben. Im Juni 2015 spendete Docker der Open Container Initiative (OCI) die Container-Image-Spezifikation und den Laufzeitcode, der heute unter dem Namen runc bekannt ist, um die Standardisierung zu unterstützen, während das Container-Ökosystem wächst und reift.
Im Anschluss an diese Entwicklung gibt Docker mit dem Projekt containerd, das Docker 2017 der Cloud (siehe Cloud Schulungen) Native Computing Foundation (CNCF) gespendet hat, weiterhin etwas zurück. containerd ist eine Container-Laufzeitumgebung nach Industriestandard, die runc nutzt und mit dem Schwerpunkt auf Einfachheit, Robustheit und Portabilität entwickelt wurde. containerd ist die Kern-Container-Laufzeitumgebung der Docker Engine.
Container-Normung
Docker bringt einige neue Dinge auf den Tisch, die die früheren Technologien nicht mitbrachten. Das erste ist, dass es Container einfacher und sicherer einsetzbar und nutzbar macht als frühere Ansätze. Darüber hinaus hat Docker durch die Zusammenarbeit mit den anderen Anbietern von Containern, darunter Canonical, Google (siehe Google Schulung) , Red Hat (mehr Infos Red Hat Seminare) und Parallels, bei seiner wichtigsten Open-Source-Komponente libcontainer die dringend benötigte Standardisierung von Containern erreicht.
Seitdem hat Docker "sein Software-Containerformat und seine Laufzeit sowie die zugehörigen Spezifikationen" an das Open Container Project der Linux (siehe auch Linux Schulung) Foundation gespendet. Konkret heißt es: "Docker hat den gesamten Inhalt des libcontainer-Projekts, einschließlich nsinit, und alle Änderungen, die erforderlich sind, damit es unabhängig von Docker läuft, übernommen und für diese Bemühungen gespendet".
Docker hat die Arbeit an anderen Container-Standardisierungsbemühungen fortgesetzt. Zum Beispiel wird Dockers containerd, die Open-Source-Container-Laufzeitumgebung, jetzt von der Cloud Native Computing Foundation (CNCF) gehostet.
Heute hat Docker also per se keine Konkurrenten mehr. Es gibt zwar andere LXC-basierte Container-Implementierungen wie CoreOS, jetzt LXD von Red Hat, Rkt oder Canonical, aber sie sind nicht so sehr Konkurrenten als vielmehr LXC-Verfeinerungen. Sie können Docker-Container jedoch auf praktisch jedem Betriebssystem oder jeder Cloud ausführen. Das gibt ihr einen Vorteil gegenüber den anderen.
In der Ebene oberhalb der Container, der Container-Orchestrierung, hat Docker einen ernsthaften Konkurrenten: Kubernetes.
Container-Orchestrierung
Wie jedes andere Element Ihrer IT-Infrastruktur müssen Container überwacht und gesteuert werden. Ansonsten haben Sie buchstäblich keine Ahnung, was auf Ihren Servern läuft.
Sie können DevOps-Programme zur Bereitstellung und Überwachung von Docker-Containern verwenden, aber sie sind nicht für Container optimiert. Wie DataDog, ein Unternehmen für Cloud-Überwachung, in seinem Bericht über den Einsatz von Dockern in der Praxis feststellt: "Die kurze Lebensdauer und die erhöhte Dichte von Containern haben erhebliche Auswirkungen auf die Überwachung der Infrastruktur. Sie stellen eine Zunahme der Anzahl der Dinge dar, die individuell überwacht werden müssen".
Die Antwort lautet: Tools zur Cloud-Orchestrierung. Diese überwachen und verwalten das Clustering und die Planung von Containern. Im Mai 2017 gab es drei große Cloud-Container-Orchestrierungsprogramme: Docker Swarm, Kubernetes und Mesosphere. Heute gibt es sie alle noch, aber Kubernetes ist bei weitem das dominanteste Programm zur Orchestrierung von Clouds.
Tatsächlich sprang Mesosphere auf den Zug des Kubernetes auf. Docker kündigte an, Kubernetes in die Docker-Plattform zu integrieren. Die Benutzer haben die Wahl, Kubernetes und/oder Docker Swarm für die Orchestrierung zu verwenden.
Kubernetes hat die größte Community und ist mit großem Abstand die beliebteste.
Docker wusste, dass dies kommen würde. Hykes sagte auf der DockerCon EU in Kopenhagen, dass das Unternehmen Kubernetes in sein Angebot aufgenommen habe, weil es "unseren Nutzern und Kunden die Möglichkeit bietet, eine Orchestrierungswahl mit der zusätzlichen Sicherheit, Verwaltung und End-to-End-Erfahrung von Docker zu treffen, die sie von Anfang an von Docker erwartet haben".
Auch wenn Kubernetes der Gewinner der Container-Orchestrierung sein mag, so bleiben die Container selbst doch weitgehend das Design (siehe Design Schulung) von Docker. Eine detaillierte Einsicht vermitteln die Kubernetes Schulungen. Die Technologie von Docker wird uns noch jahrelang begleiten.
Schlussfolgerungen
Kurz gesagt, hier ist, was Docker für Sie tun kann: Er kann mehr Anwendungen auf derselben Hardware (mehr Infos Hardware Training) zum Laufen bringen als andere Technologien; er macht es Entwicklern leicht, schnell einsatzbereite Container-Anwendungen zu erstellen; und er macht die Verwaltung und Bereitstellung von Anwendungen viel einfacher. Wenn man das alles zusammennimmt, versteht man, warum Docker den Hype-Zyklus so schnell durchlaufen hat,
Speziell für CI/CD ermöglicht Docker die Einrichtung lokaler Entwicklungsumgebungen, die genau wie ein Live-Server sind; die Ausführung mehrerer Entwicklungsumgebungen vom gleichen Host mit einzigartiger Software, Betriebssystemen und Konfigurationen; das Testen von Projekten auf neuen oder anderen Servern; und die Möglichkeit, dass jeder am gleichen Projekt mit den exakt gleichen Einstellungen arbeiten kann, unabhängig von der lokalen Host-Umgebung. Auf diese Weise können Entwickler die für CI/CD wichtigen Testsuiten ausführen, um schnell zu sehen, ob eine neu vorgenommene Änderung ordnungsgemäß funktioniert.
Docker-Container, die auf Docker (mehr dazu Docker Seminar) Engine laufen:
- Standard: Docker hat den Industriestandard für Container geschaffen, so dass sie überall hin mitgenommen werden können
- Leichtgewicht: Container teilen sich den Betriebssystemkern des Rechners und benötigen daher kein Betriebssystem (siehe Betriebssystem Training) pro Anwendung, was zu höherer Server-Effizienz und geringeren Server- und Lizenzkosten führt.
- Sicher: Anwendungen sind in Containern sicherer, und Docker bietet die stärkste Standardisolierung in der Branche
Historie
Die Einführung von Docker im Jahr 2013 leitete eine Revolution in der Anwendungsentwicklung ein - durch die Demokratisierung von Software-Containern. Docker entwickelte eine Linux-Container-Technologie - eine Technologie, die portabel, flexibel und einfach zu implementieren ist. Docker öffnete libcontainer und schloss sich mit einer weltweiten Gemeinschaft von Mitwirkenden zusammen, um die Entwicklung voranzutreiben. Im Juni 2015 spendete Docker der Open Container Initiative (OCI) die Container-Image-Spezifikation und den Laufzeitcode, der heute unter dem Namen runc bekannt ist, um die Standardisierung zu unterstützen, während das Container-Ökosystem wächst und reift.
Im Anschluss an diese Entwicklung gibt Docker mit dem Projekt containerd, das Docker 2017 der Cloud (siehe Cloud Schulungen) Native Computing Foundation (CNCF) gespendet hat, weiterhin etwas zurück. containerd ist eine Container-Laufzeitumgebung nach Industriestandard, die runc nutzt und mit dem Schwerpunkt auf Einfachheit, Robustheit und Portabilität entwickelt wurde. containerd ist die Kern-Container-Laufzeitumgebung der Docker Engine.
Container-Normung
Docker bringt einige neue Dinge auf den Tisch, die die früheren Technologien nicht mitbrachten. Das erste ist, dass es Container einfacher und sicherer einsetzbar und nutzbar macht als frühere Ansätze. Darüber hinaus hat Docker durch die Zusammenarbeit mit den anderen Anbietern von Containern, darunter Canonical, Google (siehe Google Schulung) , Red Hat (mehr Infos Red Hat Seminare) und Parallels, bei seiner wichtigsten Open-Source-Komponente libcontainer die dringend benötigte Standardisierung von Containern erreicht.
Seitdem hat Docker "sein Software-Containerformat und seine Laufzeit sowie die zugehörigen Spezifikationen" an das Open Container Project der Linux (siehe auch Linux Schulung) Foundation gespendet. Konkret heißt es: "Docker hat den gesamten Inhalt des libcontainer-Projekts, einschließlich nsinit, und alle Änderungen, die erforderlich sind, damit es unabhängig von Docker läuft, übernommen und für diese Bemühungen gespendet".
Docker hat die Arbeit an anderen Container-Standardisierungsbemühungen fortgesetzt. Zum Beispiel wird Dockers containerd, die Open-Source-Container-Laufzeitumgebung, jetzt von der Cloud Native Computing Foundation (CNCF) gehostet.
Heute hat Docker also per se keine Konkurrenten mehr. Es gibt zwar andere LXC-basierte Container-Implementierungen wie CoreOS, jetzt LXD von Red Hat, Rkt oder Canonical, aber sie sind nicht so sehr Konkurrenten als vielmehr LXC-Verfeinerungen. Sie können Docker-Container jedoch auf praktisch jedem Betriebssystem oder jeder Cloud ausführen. Das gibt ihr einen Vorteil gegenüber den anderen.
In der Ebene oberhalb der Container, der Container-Orchestrierung, hat Docker einen ernsthaften Konkurrenten: Kubernetes.
Container-Orchestrierung
Wie jedes andere Element Ihrer IT-Infrastruktur müssen Container überwacht und gesteuert werden. Ansonsten haben Sie buchstäblich keine Ahnung, was auf Ihren Servern läuft.
Sie können DevOps-Programme zur Bereitstellung und Überwachung von Docker-Containern verwenden, aber sie sind nicht für Container optimiert. Wie DataDog, ein Unternehmen für Cloud-Überwachung, in seinem Bericht über den Einsatz von Dockern in der Praxis feststellt: "Die kurze Lebensdauer und die erhöhte Dichte von Containern haben erhebliche Auswirkungen auf die Überwachung der Infrastruktur. Sie stellen eine Zunahme der Anzahl der Dinge dar, die individuell überwacht werden müssen".
Die Antwort lautet: Tools zur Cloud-Orchestrierung. Diese überwachen und verwalten das Clustering und die Planung von Containern. Im Mai 2017 gab es drei große Cloud-Container-Orchestrierungsprogramme: Docker Swarm, Kubernetes und Mesosphere. Heute gibt es sie alle noch, aber Kubernetes ist bei weitem das dominanteste Programm zur Orchestrierung von Clouds.
Tatsächlich sprang Mesosphere auf den Zug des Kubernetes auf. Docker kündigte an, Kubernetes in die Docker-Plattform zu integrieren. Die Benutzer haben die Wahl, Kubernetes und/oder Docker Swarm für die Orchestrierung zu verwenden.
Kubernetes hat die größte Community und ist mit großem Abstand die beliebteste.
Docker wusste, dass dies kommen würde. Hykes sagte auf der DockerCon EU in Kopenhagen, dass das Unternehmen Kubernetes in sein Angebot aufgenommen habe, weil es "unseren Nutzern und Kunden die Möglichkeit bietet, eine Orchestrierungswahl mit der zusätzlichen Sicherheit, Verwaltung und End-to-End-Erfahrung von Docker zu treffen, die sie von Anfang an von Docker erwartet haben".
Auch wenn Kubernetes der Gewinner der Container-Orchestrierung sein mag, so bleiben die Container selbst doch weitgehend das Design (siehe Design Schulung) von Docker. Eine detaillierte Einsicht vermitteln die Kubernetes Schulungen. Die Technologie von Docker wird uns noch jahrelang begleiten.
Schlussfolgerungen
Kurz gesagt, hier ist, was Docker für Sie tun kann: Er kann mehr Anwendungen auf derselben Hardware (mehr Infos Hardware Training) zum Laufen bringen als andere Technologien; er macht es Entwicklern leicht, schnell einsatzbereite Container-Anwendungen zu erstellen; und er macht die Verwaltung und Bereitstellung von Anwendungen viel einfacher. Wenn man das alles zusammennimmt, versteht man, warum Docker den Hype-Zyklus so schnell durchlaufen hat,
Speziell für CI/CD ermöglicht Docker die Einrichtung lokaler Entwicklungsumgebungen, die genau wie ein Live-Server sind; die Ausführung mehrerer Entwicklungsumgebungen vom gleichen Host mit einzigartiger Software, Betriebssystemen und Konfigurationen; das Testen von Projekten auf neuen oder anderen Servern; und die Möglichkeit, dass jeder am gleichen Projekt mit den exakt gleichen Einstellungen arbeiten kann, unabhängig von der lokalen Host-Umgebung. Auf diese Weise können Entwickler die für CI/CD wichtigen Testsuiten ausführen, um schnell zu sehen, ob eine neu vorgenommene Änderung ordnungsgemäß funktioniert.