Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: Windows Server 2025, Windows Server 2022, Windows Server 2019, Windows Server 2016
Bei Containern handelt es sich um eine Technologie zum Verpacken und Ausführen von Windows- und Linux-Anwendungen, die in verschiedenen Umgebungen lokal und in der Cloud eingesetzt werden können. Container stellen eine schlanke, isolierte Umgebung bereit, in der Apps einfacher entwickelt, bereitgestellt und verwaltet werden können. Container werden schnell gestartet und beendet. Sie eignen sich daher ideal für Apps, die sich schnell an einen sich ändernden Bedarf anpassen müssen. Die ressourcenschonende Natur von Containern macht sie auch zu einem nützlichen Werkzeug, um die Kapazität und Nutzung Ihrer Infrastruktur zu erhöhen.
Das Microsoft-Containerökosystem
Microsoft bietet viele Tools und Plattformen, mit denen Sie Apps in Containern entwickeln und bereitstellen können:
Führen Sie Windows-oder Linux-basierte Container unter Windows 10 für Entwicklung und Tests mit Docker Desktop aus. Dabei werden in Windows integrierte Containerfunktionen verwendet. Sie können Container auch nativ unter Windows Server ausführen.
Entwickeln, Testen, Veröffentlichen und Bereitstellen von Windows-basierten Containern mithilfe der leistungsfähigen Containerunterstützung in Visual Studio und Visual Studio Code, die Unterstützung für Docker, Docker Compose, Kubernetes, Helm und andere nützliche Technologien umfasst.
Veröffentlichen Sie Ihre Apps als Containerimages auf dem öffentlichen DockerHub, damit sie von anderen Benutzern verwendet werden können, oder in einer privaten Azure Container Registry für eigene Entwicklung und Bereitstellung durch Ihre Organisation, indem Sie Push- und Pullvorgänge direkt in Visual Studio und Visual Studio Code durchführen.
Stellen Sie Container im richtigen Maßstab in Azure oder anderen Clouds bereit:
Ziehen Sie Ihre App aus einer Containerregistrierung, z. B. der Azure-Containerregistrierung, und stellen Sie sie dann mithilfe eines Orchestrators wie Azure Kubernetes Service (AKS) bereit und verwalten Sie sie dann im Großen und Umfang.
Azure Kubernetes Service stellt Container auf virtuellen Azure-Computern bereit und verwaltet sie im großen Maßstab. Sie können Dutzende, Hunderte oder sogar Tausende von Containern ausführen.
Virtuelle Azure-Computer führen entweder ein angepasstes Windows Server-Image für Windows-basierte Apps oder ein angepasstes Ubuntu Linux-Image für Linux-basierte Apps aus.
Bereitstellen von Containern lokal mithilfe von Azure Kubernetes Service (AKS), aktiviert von Azure Arc, AKS-Modul auf Azure Stack Hub oder Azure Stack Hub mit OpenShift. Sie können Kubernetes auch selbst auf Windows Server einrichten. Weitere Informationen finden Sie unter Kubernetes unter Windows. Microsoft entwickelt auch Unterstützung für Windows-Container auf redHat OpenShift Container Platform.
Funktionsweise von Containern
Ein Container ist ein isoliertes, schlankes Paket zum Ausführen einer Anwendung auf dem Hostbetriebssystem. Container werden auf dem Kernel des Hostbetriebssystems ausgeführt (den Sie sich als begrabene Sanitäranlage des Betriebssystems vorstellen können), wie im folgenden Diagramm dargestellt.
Auch wenn ein Container den Kernel des Hostbetriebssystems ebenfalls verwendet, erhält der Container keinen uneingeschränkten Zugriff darauf. Stattdessen erhält der Container eine isolierte (und in einigen Fällen virtualisierte) Ansicht des Systems. Ein Container kann z.B. auf eine virtualisierte Version des Dateisystems und der Registrierung zugreifen, aber alle Änderungen wirken sich nur auf den Container aus und werden verworfen, wenn er beendet wird. Zum Speichern von Daten kann der Container beständigen Speicher wie eine Azure Disk oder eine Dateifreigabe wie Azure Filesbereitstellen.
Ein Container baut auf dem Kernel auf, aber der Kernel stellt nicht alle APIs und Dienste bereit, die eine App ausführen muss. Die meisten dieser APIs und Dienste stammen aus Systemdateien (Bibliotheken), die über dem Kernel im Benutzermodus ausgeführt werden. Da ein Container von der Benutzermodusumgebung des Hosts isoliert ist, benötigt der Container eine eigene Kopie dieser Benutzermodussystemdateien. Diese Dateien werden in etwas verpackt, das als Basisimage bezeichnet wird. Das Basisimage dient als grundlegende Ebene, auf der Sie Ihren Container erstellen, und stellt es mit Betriebssystemdiensten bereit, die nicht vom Kernel bereitgestellt werden.
Container im Vergleich zu virtuellen Computern
Im Gegensatz zu einem Container führt ein virtueller Computer (VM) ein vollständiges Betriebssystem aus – einschließlich seines eigenen Kernels – wie im folgenden Diagramm dargestellt.
Container und virtuelle Computer haben jeweils ihre Verwendung. In der Tat verwenden viele Bereitstellungen von Containern virtuelle Computer als Hostbetriebssystem, anstatt direkt auf der Hardware auszuführen, insbesondere bei der Ausführung von Containern in der Cloud.
Weitere Informationen zu den Ähnlichkeiten und Unterschieden dieser ergänzenden Technologien finden Sie unter Container und virtuelle Computer.
Containerimages
Sie erstellen alle Container aus Containerimages. Ein Containerimage ist eine Sammlung von Dateien, die in einem Stapel von Schichten organisiert sind. Es befindet sich auf Ihrem lokalen Computer oder in einer Remotecontainerregistrierung. Ein Containerimage besteht aus den Betriebssystemdateien des Benutzermodus, die Ihre App ausführen muss. Das Bild enthält auch die Laufzeiten, Abhängigkeiten und alle Konfigurationsdateien, die Ihre App benötigt.
Microsoft bietet mehrere Images (als Basisimages bezeichnet), die Sie als Ausgangspunkt für das Erstellen eines eigenen Containerimages verwenden können:
- Windows: Enthält den vollständigen Satz der Windows-APIs und Systemdienste (ausgenommen Serverrollen).
- Windows Server: Enthält den vollständigen Satz der Windows-APIs und Systemdienste.
- Windows Server Core: Ein kleineres Image, das eine Teilmenge der Windows Server-APIs enthält (nämlich die vollständige Version von .NET Framework). Sie enthält auch die meisten, aber nicht alle Serverrollen (z. B. Faxserver ist nicht enthalten).
- Nano Server: Das kleinste Windows Server-Image mit Unterstützung für die .NET Core-APIs und einige Serverrollen.
Container-Images bestehen aus einer Reihe von Ebenen. Jede Schicht enthält einen Satz von Dateien, die das Containerimage darstellen, wenn Sie überlagert werden. Aufgrund der mehrschichtigen Art von Containern müssen Sie nicht immer auf ein Basisimage abzielen, um einen Windows-Container zu erstellen. Stattdessen können Sie auf ein anderes Bild abzielen, das bereits das gewünschte Framework enthält. Das .NET-Team veröffentlicht z.B. ein .NET Core-Image, das die .NET Core-Laufzeit enthält. Die Benutzer müssen die Installation von .NET Core daher nicht duplizieren – stattdessen können Sie die Schichten dieses Containerimages wiederverwenden. Das .NET Core-Image selbst basiert auf Nano Server.
Weitere Informationen finden Sie unter Containerbasisimages.
Containerbenutzer
Container für Entwickler
Container helfen Entwicklern, Apps mit höherer Qualität schneller zu entwickeln und auszuliefern. Mit Containern können Entwickler ein Containerimage erstellen, das innerhalb von Sekunden identisch in Umgebungen bereitgestellt werden kann. Container fungieren als einfache Methode, um Code für mehrere Teams freizugeben und eine Entwicklungsumgebung zu starten, ohne dass sich dies auf das Hostdateisystem auswirkt.
Container sind portabel und vielseitig einsetzbar, können in jeder Sprache geschriebene Apps ausführen und sind mit jedem Computer kompatibel, auf dem Windows 10 (Version 1607 oder höher) oder Windows Server 2016 oder höher ausgeführt wird. Entwickler können einen Container lokal auf ihrem Laptop oder Desktop erstellen und testen und dann das gleiche Containerimage in der privaten Cloud ihres Unternehmens, einer öffentlichen Cloud oder über einen Dienstanbieter bereitstellen. Die natürliche Agilität von Containern unterstützt moderne Muster für die Entwicklung von Apps in großen, virtualisierten Cloudumgebungen. Der nützlichste Vorteil für Entwickler besteht vielleicht in der Möglichkeit, Ihre Umgebung zu isolieren, sodass Ihre App immer die von Ihnen angegebene Version von Bibliotheken erhält und Konflikte mit Abhängigkeiten vermieden werden.
Container für IT-Experten
Mithilfe von Containern können Administratoren eine Infrastruktur erstellen, die einfacher zu aktualisieren und zu verwalten ist und die Hardwareressourcen besser nutzt. IT-Experten können Container verwenden, um standardisierte Umgebungen für ihre Entwicklungs-, Qualitätssicherungs- und Produktionsteams bereitzustellen. Mithilfe von Containern können Systemadministratoren Unterschiede bei Betriebssysteminstallationen und der zugrunde liegenden Infrastruktur abstrahieren.
Sie können auch den interaktiven Modus von Containern verwenden, um widersprüchliche Instanzen eines Befehlszeilentools auf demselben System auszuführen.
Containerorchestrierung
Orchestratoren sind beim Einrichten einer containerbasierten Umgebung ein wichtiger Teil der Infrastruktur. Orchestratoren sind für die Verwaltung von containerisierten Apps im großen Maßstab unerlässlich. Während Sie einige Container manuell mit Docker und Windows verwalten können, nutzen Apps häufig fünf, zehn oder sogar Hunderte von Containern, wodurch Orchestratoren unverzichtbar sind.
Containerorchestratoren wurden entwickelt, um die Verwaltung von Containern im richtigen Maßstab und in der Produktion zu erleichtern. Orchestratoren stellen Funktionen für Folgendes bereit:
Orchestratoren helfen Ihnen, Container-Apps in großem Umfang heranzuzüchten, was Ihnen Funktionalität für diese Situationen bietet:
- Bereitstellung im richtigen Maßstab
- Planung der Workload
- Systemüberwachung
- Failover bei einem Knotenausfall
- Zentrales Hoch- oder Herunterskalieren
- Netzwerk
- Dienstermittlung
- Koordinieren von App-Upgrades
- Clusterknotenaffinität
Es gibt viele verschiedene Orchestratoren, die Sie mit Windows-Containern verwenden können. Im Folgenden finden Sie die von Microsoft bereitgestellten Optionen:
- Azure Kubernetes Service (AKS): Verwenden Sie einen verwalteten Kubernetes-Dienst.
- Azure Kubernetes Service (AKS) in Azure Stack HCI: Lokale Verwendung von Azure Kubernetes Service
Testen von Containern unter Windows
Informationen zu den ersten Schritten mit Containern unter Windows Server oder Windows 10 finden Sie im folgenden Artikel:
Hilfe bei der Entscheidung, welche Azure-Dienste für Ihr Szenario geeignet sind, finden Sie unter Azure-Containerdienste und auswählen, welche Azure-Dienste zum Hosten Ihrer Anwendung verwendet werden sollen.
Ressourcen
In den folgenden Ressourcen finden Sie Informationen zur Verwendung von Windows Server-Containern:
Informationen zu aktuellen Problemen und geplanten Featureupgrades finden Sie im GitHub-Repository zu Windows-Containern.
Sehen Sie sich den Blog an: Windows Containers Blog.
Um sich an das Windows Server-Containerteam zu wenden, senden Sie E-Mails an die Gruppe Windows Containers Customers.