Startseite topics Was ist Docker? Was ist Docker?
Erstellung auf Docker innerhalb von OpenShift Abonnieren Sie Cloud-Updates
Illustration mit Collage aus Piktogrammen von Computermonitor, Server, Wolken, Punkten
Was ist Docker?

Docker ist eine Open-Source-Plattform, die es Entwicklern ermöglicht, Container zu erstellen, bereitzustellen, auszuführen, zu aktualisieren und zu verwalten. Dabei handelt es sich um standardisierte, ausführbare Komponenten, die den Quellcode von Anwendungen mit den Betriebssystembibliotheken und Abhängigkeiten kombinieren, die für die Ausführung dieses Codes in jeder Umgebung erforderlich sind.

Container vereinfachen die Entwicklung und Bereitstellung verteilter Anwendungen. Sie werden immer beliebter, da Unternehmen auf cloudnative Entwicklung und hybride Multicloud-Umgebungen umsteigen. Es ist für Entwickler möglich, Container ohne Docker zu erstellen, indem sie direkt mit den in Linux und anderen Betriebssystemen integrierten Funktionen arbeiten. Docker macht die Containerisierung jedoch schneller, einfacher und sicherer. In diesem Schreiben meldete Docker über 13 Millionen Entwickler, die die Plattform verwenden (Link befindet sich außerhalb von ibm.com).

Docker bezieht sich auch auf Docker, Inc. (Link befindet sich außerhalb von ibm.com), das Unternehmen, das die kommerzielle Version von Docker verkauft. Es bezieht sich auch auf das Docker Open Source Projekt, zu dem Docker, Inc. und viele andere Organisationen und Einzelpersonen beitragen.

Generative KI und der Wert der Hybrid Cloud

Erfahren Sie, wie Unternehmen die Vorteile von KI skalieren können, indem sie die Hybrid Cloud nutzen, um ihre Geschäftsergebnisse zu verbessern.

Ähnliche Inhalte

Registrieren und Leitfaden zur Hybrid Cloud lesen

Wie Container funktionieren und warum sie so beliebt sind

Container werden durch die in den Linux-Kernel integrierte Prozessisolierung und Virtualisierungsfunktionen ermöglicht. Zu diesen Funktionen gehören Kontrollgruppen (Cgroups) für die Zuweisung von Ressourcen zwischen Prozessen und Namensräume für die Einschränkung des Zugriffs oder der Sichtbarkeit eines Prozesses auf andere Ressourcen oder Bereiche des Systems.

Sie ermöglichen mehreren Anwendungskomponenten die gemeinsame Nutzung der Ressourcen einer einzigen Instanz des Host-Betriebssystems. Diese gemeinsame Nutzung entspricht in etwa der Art und Weise, wie ein Hypervisor es mehreren virtuellen Maschinen (VMs) ermöglicht, die CPU, den Speicher und andere Ressourcen eines einzelnen Hardwareservers gemeinsam zu nutzen. 

Daher bietet die Containertechnologie alle Funktionen und Vorteile von VMs – einschließlich Anwendungsisolierung, kostengünstige Skalierbarkeit und Verfügbarkeit – sowie wichtige zusätzliche Vorteile:

  • Geringeres Gewicht: Im Gegensatz zu VMs tragen Container nicht die Nutzlast einer ganzen Betriebssysteminstanz und eines Hypervisors. Sie enthalten nur die Betriebssystemprozesse und Abhängigkeiten, die für die Ausführung des Codes erforderlich sind. Die Größe von Containern wird in Megabyte gemessen (im Gegensatz zu Gigabyte bei einigen VMs), nutzt die Hardwarekapazitäten besser aus und hat schnellere Startzeiten. 

  • Verbesserte Produktivität der Entwickler: Containerisierte Anwendungen können einmal geschrieben und überall ausgeführt werden. Und im Vergleich zu VMs sind Container schneller und einfacher zu installieren, bereitzustellen und neu zu starten. Dieser Vorteil macht sie ideal für die Verwendung in kontinuierlichen Integrationen und kontinuierlichen Bereitstellungspipelines (CI/CD) sowie für Entwicklungsteams, die agile und DevOps -Praktiken einführen.

  • Größere Ressourceneffizienz: Mit Containern können Entwickler ein Vielfaches an Kopien einer Anwendung auf der gleichen Hardware ausführen, als dies mit VMs möglich ist. Diese Effizienz kann die Cloud-Ausgaben reduzieren.

Unternehmen, die Container verwenden, berichten von weiteren Vorteilen, darunter eine verbesserte App-Qualität, eine schnellere Reaktion auf Marktveränderungen und vieles mehr. Erfahren Sie mehr mit diesem interaktiven Werkzeug: 

Vollständigen Bericht herunterladen: Nutzung von Containern im Unternehmen
Warum Docker verwenden?

Docker ist heute so beliebt, dass die Begriffe „Docker“ und „Container“ synonym verwendet werden. Aber die ersten Technologien im Zusammenhang mit Containern gab es schon Jahre – sogar Jahrzehnte (Link befindet sich außerhalb von ibm.com) – bevor Docker 2013 der Öffentlichkeit vorgestellt wurde. 

Vor allem wurde 2008 LinuXContainers (LXC) in den Linux-Kernel implementiert, wodurch die Virtualisierung für eine einzelne Linux-Instanz vollständig möglich wurde. LXC wird zwar auch heute noch verwendet, aber es gibt auch neuere Technologien, die den Linux-Kernel verwenden. Ubuntu, ein modernes Open-Source-Linux-Betriebssystem, bietet diese Funktion ebenfalls. 

Mit Docker können Entwickler über einfache Befehle auf diese nativen Containerisierungsfunktionen zugreifen und sie über eine arbeitssparende Programmierschnittstelle (API) automatisieren. Im Vergleich zu LXC bietet Docker:

  • Verbesserte und nahtlose Container-Portabilität: Während LXC-Container oft auf maschinenspezifische Konfigurationen verweisen, können Docker-Container ohne Änderungen auf jedem Desktop, in jedem Rechenzentrum und in jeder Cloud-Umgebung ausgeführt werden. 
  • Noch leichtere und detailliertere Updates: Mit LXC können mehrere Prozesse in einem einzigen Container kombiniert werden. Diese Flexibilität macht es möglich, eine Anwendung zu erstellen, die auch dann weiterläuft, wenn einer ihrer Bestandteile für ein Update oder eine Reparatur außer Betrieb genommen wird. 

     

  • Automatisierte Containererstellung: Docker kann automatisch einen Container auf der Grundlage des Quellcodes einer Anwendung erstellen. 

     

  • Containerversionierung: Docker kann Versionen eines Container-Bildes verfolgen, auf frühere Versionen zurücksetzen und verfolgen, wer eine Version erstellt hat und wie. Es kann sogar nur die Differenzen zwischen einer bestehenden und einer neuen Version hochladen. 

     

  • Wiederverwendung von Containern: Vorhandene Container können als Basis-Images verwendet werden – quasi als Vorlagen für die Erstellung neuer Container. 

     

  • Freigegebene Container-Bibliotheken: Entwickler können auf eine Open-Source-Registrierung mit Tausenden von benutzerdefinierten Containern zugreifen. 

Die Containerisierung von Docker funktioniert heute auch mit Microsoft Windows und Apple MacOS. Entwickler können Docker-Container auf jedem Betriebssystem ausführen. Die meisten führenden Cloud-Anbieter, darunter Amazon Web Services (AWS), Microsoft Azure und IBM® Cloud, bieten spezielle Dienste an, um Entwickler bei der Erstellung, Bereitstellung und Ausführung von mit Docker containerisierten Anwendungen zu unterstützen.

Docker-Tools und -Begriffe

Zu den Tools, Begriffen und Technologien, mit denen Entwickler bei der Verwendung von Docker konfrontiert werden, gehören unter anderem: 

Dockerfile

Jeder Docker-Container beginnt mit einer einfachen Textdatei, die Anweisungen enthält, wie das Docker-Container-Image zu erstellen ist. Dockerfile automatisiert die Erstellung von Docker-Bildern. Dabei handelt es sich im Wesentlichen um eine Liste von Befehlszeilenanweisungen (CLI), die Docker Engine ausführen wird, um das Image zusammenzustellen. Die Liste der Docker-Befehle ist riesig, aber standardisiert: Docker-Vorgänge funktionieren unabhängig von Inhalt, Infrastruktur oder anderen Umgebungsvariablen gleich. 

Docker-Images

Docker-Images enthalten ausführbaren Anwendungsquellcode sowie alle Tools, Bibliotheken und Abhängigkeiten, die der Anwendungscode als Container ausführen muss. Wenn Sie das Docker-Image ausführen, wird es zu einer Instanz (oder mehreren Instanzen) des Containers. 

Es ist zwar möglich, ein Docker-Image von Grund auf neu zu erstellen, aber die meisten Entwickler beziehen es aus allgemeinen Repositories. Mehrere Docker-Images können aus einem einzigen Basis-Image erstellt werden, und sie teilen sich die Gemeinsamkeiten ihres Stacks. 

Docker-Images bestehen aus Ebenen und jede Ebene entspricht einer Version des Images. Immer wenn ein Entwickler Änderungen am Image vornimmt, wird eine neue oberste Ebene erstellt und diese oberste Ebene ersetzt die vorherige oberste Ebene als aktuelle Version des Images. Vorherige Ebenen werden für Rollbacks oder zur Wiederverwendung in anderen Projekten gespeichert. 

Jedes Mal, wenn ein Container aus einem Docker-Image erstellt wird, wird eine weitere neue Schicht, die Containerschicht, erstellt. Änderungen am Container – wie das Hinzufügen oder Löschen von Dateien – werden in der Containerschicht gespeichert und existieren nur, solange der Container läuft.

Dieser iterative Image-Erstellungsprozess ermöglicht eine höhere Gesamteffizienz, da mehrere Live-Container-Instanzen von nur einem einzigen Basis-Image ausgeführt werden können und dabei einen gemeinsamen Stack nutzen. 

Docker-Container

Docker-Container sind die Live-Instanzen, auf denen Docker-Images ausgeführt werden. Während es sich bei Docker-Images um schreibgeschützte Dateien handelt, handelt es sich bei Containern um aktive, kurzlebige, ausführbare Inhalte. Benutzer können mit ihnen interagieren und Administratoren können ihre Einstellungen und Bedingungen über Docker-Befehle anpassen. 

Docker Hub

Docker Hub (Link befindet sich außerhalb von ibm.com) ist das öffentliche Repository von Docker-Images, das sich selbst als „weltweit größte Bibliothek und Community für Container-Images“ bezeichnet. Es enthält über 100.000 Container-Images, die von kommerziellen Softwareanbietern, Open-Source-Projekten und einzelnen Entwicklern stammen. Es umfasst Images, die von Docker, Inc. erstellt wurden, zertifizierte Images, die zum Docker Trusted Registry gehören, und Tausende weiterer Images. 

Alle Benutzer von Docker Hub können ihre Bilder nach Belieben teilen. Sie können auch vordefinierte Basis-Images aus dem Docker-Dateisystem herunterladen und als Ausgangspunkt für jedes Containerisierungsprojekt verwenden. 

Es gibt auch andere Image-Repositorys, insbesondere GitHub. GitHub ist ein Repository-Hosting-Service, der für Tools zur Anwendungsentwicklung und als Plattform zur Förderung der Zusammenarbeit und Kommunikation bekannt ist. Benutzer von Docker Hub können ein Repository (Repository) erstellen, das viele Bilder enthalten kann. Das Repository kann öffentlich oder privat sein und mit GitHub- oder BitBucket-Konten verknüpft werden. 

Docker Desktop

Docker Desktop (Link befindet sich außerhalb von ibm.com) ist eine Anwendung für Mac oder Windows, die Docker Engine, Docker CLI-Client, Docker Compose, Kubernetes und andere umfasst. Es beinhaltet auch den Zugriff auf Docker Hub. 

Docker Daemon

Docker Daemon ist ein Service, der Docker-Bilder mit den Befehlen des Clients erstellt und verwaltet. Im Grunde dient Docker Daemon als Kontrollzentrum für Ihre Docker-Implementierung. Der Server, auf dem Docker Daemon ausgeführt wird, wird als Docker Host bezeichnet.

Docker-Registrierung

Eine Docker Registry ist ein skalierbares Open-Source-Speicher- und Verteilungssystem für Docker-Images. Die Registry ermöglicht es Ihnen, Image-Versionen in Repositorys zu verfolgen und Tagging zur Identifizierung zu verwenden. Diese Nachverfolgung und Identifizierung erfolgt mit Git, einem Tool zur Versionskontrolle. 

Docker-Bereitstellung und -Orchestrierung

Wenn nur einige wenige Container ausgeführt werden, ist es relativ einfach, eine Anwendung innerhalb der Docker-Engine, der De-facto-Laufzeitumgebung der Branche, zu verwalten. Bei Bereitstellungen mit Tausenden von Containern und Hunderten von Services ist es jedoch fast unmöglich, den Workflow ohne die Hilfe einiger speziell entwickelter Tools zu verwalten.

Docker-Plug-ins

Docker-Plug-ins (Link befindet sich außerhalb von ibm.com) können verwendet werden, um Docker noch mehr Funktionalität zu verleihen. Mehrere Docker-Plug-ins sind im Plug-in-System der Docker Engine enthalten, und auch Plug-ins von Drittanbietern können geladen werden. 

Docker Compose

Entwickler können Docker Compose verwenden, um Anwendungen mit mehreren Containern zu verwalten, wobei alle Container auf demselben Docker-Host laufen. Docker Compose erstellt eine YAML-Datei (.YML), die angibt, welche Dienste in der Anwendung enthalten sind, und kann Container mit einem einzigen Befehl bereitstellen und ausführen. Da die YAML-Syntax sprachunabhängig ist, können YAML-Dateien in Programmen verwendet werden, die in Java, Python, Ruby und vielen anderen Sprachen geschrieben sind. 

Entwickler können Docker Compose auch verwenden, um persistente Volumes für die Speicherung zu definieren, Basisknoten festzulegen und Dienstabhängigkeiten zu dokumentieren und zu konfigurieren. 

Kubernetes

Für die Überwachung und Verwaltung von Container-Lebenszyklen in komplexeren Umgebungen ist ein Container-Orchestrierungstool erforderlich. Während Docker ein eigenes Orchestrierungstool (genannt Docker Swarm) enthält, entscheiden sich die meisten Entwickler stattdessen für Kubernetes. 

Kubernetes ist eine Open-Source-Container-Orchestrierungsplattform, die von einem Projekt abstammt ist, das für den internen Gebrauch bei Google entwickelt wurde. Kubernetes plant und automatisiert Aufgaben, die für die Verwaltung containerbasierter Architekturen unerlässlich sind, einschließlich Containerbereitstellung, Updates, Service-Erkennung, Speicherbereitstellung, Lastausgleich, Zustandsüberwachung und mehr.

Darüber hinaus ermöglicht das Open-Source-Ökosystem von Tools für Kubernetes, einschließlich Istio und Knative, Unternehmen die Bereitstellung einer hochproduktiven Plattform-as-a-Service (PaaS) für containerisierte Anwendungen. Dieses Ökosystem bietet auch einen schnelleren Einstieg in Serverless Computing.

Weitere Informationen zu Kubernetes

Weiterführende Lösungen
Red Hat OpenShift on IBM Cloud

Erfahren Sie, wie Red Hat® OpenShift® on IBM Cloud® Red Hat OpenShift in öffentlichen und hybriden Umgebungen für Geschwindigkeit, Marktreaktivität, Skalierbarkeit und Zuverlässigkeit nutzt.

Red Hat OpenShift on IBM Cloud kennenlernen
IBM Cloud Satellite 

Nutzen Sie IBM Cloud Satellite®, um überall einheitliche Cloud-Services zu starten – vor Ort, am Netzwerkrand und in Public-Cloud-Umgebungen.

IBM Cloud Satellite kennenlernen
Hybrid-Cloudspeicherlösungen

Speichern Sie Daten dort, wo es für Anwendungen und Services am sinnvollsten ist, mit IBM Hybrid-Cloud-Speicherlösungen in On-Premises-, Private und Public Clouds.

Hybrid-Cloudspeicherlösungen kennenlernen
Cloud-Services

Erfahren Sie, wie ein Managed-Cloud-Services-Ansatz potenzielle Spannungen zwischen traditionellem IT-Management und DevOps-Kultur entschärfen kann.

Mehr über Cloud-Services
Ressourcen Nutzung von Containern im Unternehmen

Lesen Sie die neue IBM Studie über die zunehmende Einführung von Containern und Kubernetes.

Servieren von Modellen auf Kubernetes oder OpenShift mit eigenständigen Containern

Erstellen Sie ein eigenständiges Container-Image zur Bereitstellung von IBM Watson® NLP-Modellen und führen Sie es dann auf einem Kubernetes- oder Red Hat OpenShift-Cluster aus.

Machen Sie den nächsten Schritt

Red Hat OpenShift on IBM Cloud bietet Entwicklern eine schnelle und sichere Möglichkeit zur Containerisierung und Bereitstellung von Unternehmensworkloads in Kubernetes-Clustern. Entlasten Sie Ihre Teams von mühsamen Routineaufgaben wie Sicherheitsmanagement, Konformitätsmanagement, Implementierungsmanagement und laufendes Lebenszyklusmanagement.

Red Hat OpenShift on IBM Cloud kennenlernen Kostenfrei starten