Erkunden von Docker
Der Windows Server-Administrator von Contoso muss Docker, Docker-Container, Containerruntimes kennen und wissen, wie sie unter Windows Server ausgeführt werden können.
Übersicht über Docker- und Containerruntimes
Bei Docker Inc. handelt es sich um ein Unternehmen, das eine Reihe von Open-Source-Tools, Open-Source-Lösungen und cloudbasierten Diensten zusammengestellt hat, und ein allgemeines Modell für das Packen (auch als Containerisierung bezeichnet) von App-Code in einer standardisierten Einheit für die Softwareentwicklung bereitstellt. Bei dieser standardisierten Einheit, die als Docker-Container bezeichnet wird, handelt es sich um Software, die in ein vollständiges Dateisystem eingeschlossen ist, das alles enthält, was für die Ausführung benötigt wird: Code, Laufzeitumgebung, Systemtools, Systembibliotheken und alles, was Sie auf einem Server installieren können.
Um einen Docker-Container zu unterstützen, kommen zwei zugrunde liegende Komponenten ins Spiel, die von Benutzer*innen, die einen Container ausführen, normalerweise ausgeblendet oder unbemerkt bleiben. Diese beiden Komponenten sind die Containerruntime und die Betriebssystemfeatures zur Unterstützung von Containern. Unter Windows Server heißt das Feature, das Docker-Container unterstützt, einfach „Container“. Dieses Feature interagiert mit einer Komponente namens Host Compute Service (HCS). HCS ist für die Orchestrierung der Virtualisierungsplattform unter Windows Server verantwortlich und ist die niedrigere API, die sowohl Container als auch Hyper-V-VMs unterstützt.
Oberhalb des Betriebssystemfeatures, das Container plant, befindet sich eine Containerruntime. Eine Containerruntime befindet sich zwischen der CLI, der Benutzeroberfläche oder dem Containerorchestrator und dem zugrunde liegenden Betriebssystemfeature. Es ist der Auftrag der Containerruntime, Befehle vom Benutzer bzw. der Benutzerin oder dem Containerorchestrator in die Funktionen der Betriebssystemplattform zu übersetzen. Wenn Sie z. B. möchten, dass die Docker CLI einen neuen Container auszuführt, interagiert die CLI mit der Containerruntime, die wiederum den Befehl so an das Betriebssystem sendet, dass er verstanden wird. Containerruntimes existieren, damit die oberen Ebenen nicht wissen müssen, wie das Betriebssystem Befehle empfängt. Aus Benutzersicht ist dies wichtig, da unterschiedliche Containerruntimes unterschiedliche Features und Funktionen aufweisen.
Für die Ausführung von Containern unter Windows Server stehen viele verschiedene Containerruntimes zur Verfügung. Am häufigsten sind:
- Moby Project. Moby ist das Open-Source-Projekt, über das Docker die eigenen kommerziellen Projekte erstellt. Unter Windows Server ist Moby ein von der Community unterstütztes Projekt, das dockerd als Containerruntime nutzt. Moby eignet sich ideal zum Testen von Containern unter Windows Server. Bei der Installation stellt Moby nicht nur die dockerd-Containerruntime bereit, sondern auch die CLI für die Interaktion mit Containern unter Windows Server.
Achtung
Dockerd unter Windows und Windows Server verwendet HCSv1. Unter Linux wurde Moby umgestellt, um containerd als Containerruntime zu nutzen. Derzeit wird daran gearbeitet, Moby auf containerD unter Windows zu verschieben, wobei die neuere und verbesserte HCSv2-Schnittstelle genutzt wird.
ContainerD. ContainerD ist eine Open-Source-Containerruntime und wurde kürzlich als bevorzugte Containerruntime für Kubernetes-Umgebungen etabliert. ContainerD kann in Produktionsumgebungen verwendet werden und ist die Standardcontainerruntime für Windows Server 2022, wenn sie in Kubernetes-Umgebungen ausgeführt wird. Bei der Installation stellt ContainerD keine CLI für die Interaktion mit Containern bereit. Stattdessen können andere Open-Source-CLIs wie CRICTL oder NerdCTL verwendet werden.
Mirantes Container Runtime (MCR). MCR, formal als Docker Enterprise Edition (Docker EE) bekannt, bietet dieselbe Funktionalität wie Docker CE plus zusätzliche Features, die speziell für Unternehmensbereitstellungen erstellt wurden. MCR wird empfohlen, wenn Docker Swarm als Containerorchestrator verwendet wird. Nach der Installation stellt MCR die Containerruntime und die gleiche CLI-Benutzeroberfläche wie Docker und Moby bereit.
Hinweis
Eine weitere Komponente namens Docker Desktop für Windows kann auf Windows 10 und 11 für Entwicklungszwecke verwendet werden.
Ausführen von Containern unter Windows Server
Bevor Sie Container unter Windows Server ausführen, müssen Sie herausfinden, welche Containerruntime Sie in Ihrer Umgebung verwenden möchten. Die Containerruntime diktiert den Installationsvorgang, den Sie befolgen müssen. Weitere Informationen zu den Optionen unter Windows Server und zu deren Installation finden Sie unter Vorbereiten Ihres Windows Server-Hosts für Container.
Wichtig
Wenn Sie den Hyper-V-Isolationsmodus für Container verwenden möchten, müssen Sie auch die Hyper-V-Serverrolle auf dem Hostserver installieren. Auch wenn es sich beim Hostserver selbst um eine VM handelt, müssen Sie vor der Installation der Hyper-V-Rolle die geschachtelte Virtualisierung aktivieren. Da Windows-basierte Container in Windows 10 und 11 standardmäßig im Hyper-V-Isolationsmodus ausgeführt werden, muss das Hyper-V-Feature in der Windows 10- und 11-Hostumgebung installiert werden, damit dieser Standardmodus unterstützt wird.
Docker Hub
Container werden basierend auf Containerimages erstellt, und diese Images können in Repositorys gespeichert werden. Repositorys fungieren als Speicherort, in dem Sie Containerimages erstellen, speichern, absichern und freigeben können. Der Docker Hub ist ein webbasierter Online Bibliotheksdienst, der von Docker verwaltet wird, der folgende Möglichkeiten bietet:
Registrieren, Speichern und Verwalten eigener Docker-Images in einem Online-Repository und Freigeben der Images für andere Benutzer.
Zugriff auf mehr als 100.000-Containerimages von Softwareanbietern, Open Source-Projekten und anderen Communitymitgliedern.
Microsoft Container Registry
Microsoft stellt Containerimages über die Microsoft Container Registry (MCR) unter mcr.microsoft.com bereit. MCR ist die offizielle Quelle für von Microsoft bereitgestellte Containerimages. Unabhängig davon, wo Sie Microsoft-Containerimages finden, stammen diese immer von der Quelle mcr.microsoft.com.
Hinweis
Azure Container Registry ist ein Azure-Dienst, mit dem Sie ein eigenes Repository für Containerimages erstellen können. Sie können dieses Repository verwenden, um Images für beliebige Containerbereitstellungen zu speichern und zu verwalten.