Häufig gestellte Fragen zu ContainernFrequently asked questions about containers

Worin besteht der Unterschied zwischen Linux- und Windows Server-Containern?What's the difference between Linux and Windows Server containers?

Linux- und Windows Server-Container implementieren beide ähnliche Technologien in ihrem Kernel und Kernbetriebssystemen.Linux and Windows Server both implement similar technologies within their kernel and core operating systems. Der Unterschied ergibt sich aus der Plattform und Arbeitslasten, die innerhalb des Containers ausgeführt.The difference comes from the platform and workloads that run within the containers.

Wenn ein Kunde Windows Server-Container verwendet, ist eine Integration in vorhandene Windows-Technologien wie u. a. .NET, ASP.NET und PowerShell möglich.When a customer uses Windows Server containers, they can integrate with existing Windows technologies, such as .NET, ASP.NET, and PowerShell.

Was sind die Voraussetzungen für die Ausführung von Containern unter Windows?What are the prerequisites for running containers on Windows?

Container wurden mit Windows Server 2016 auf der Plattform eingeführt.Containers were introduced to the platform with Windows Server 2016. Zum Verwenden von Containern benötigen Sie entweder Windows Server 2016 oder das Windows 10 Anniversary Update (Version 1607) oder höher.To use containers, you'll need either Windows Server 2016 or the Windows 10 Anniversary update (version 1607) or newer. Weitere Informationen finden Sie in den Systemanforderungen.Read the System Requirements to learn more.

Was sind WCOW und LCOW?What are WCOW and LCOW?

WCOW ist die Kurzform von „Windows-Container unter Windows“ (Windows Containers On Windows).WCOW is short for "Windows containers on Windows." LCOW ist die Kurzform von „Linux-Container unter Windows“ (Linux Containers On Windows).LCOW is short for "Linux containers on Windows."

Wie werden Container lizenziert?How are containers licensed? Gibt es eine Einschränkung bezüglich der Anzahl von Containern, die ich ausführen kann?Is there a limit to the number of containers I can run?

Die EULA für Windows Containerimages beschreibt ein Nutzung, die verlangt, dass der Benutzer über ein Hostbetriebssystem mit einer gültigen Lizenz verfügt.The Windows container image EULA describes a usage that depends on a user having a validly licensed host OS. Die Anzahl der Container, die ein Benutzer ausführen darf, hängt von der Edition des Hostbetriebssystems und dem Isolationsmodus ab, mit dem ein Container ausgeführt wird, sowie davon, ob diese Container zu Entwicklungs-/Testzwecken oder in der Produktion ausgeführt werden.The number of containers a user is allowed to run depends upon the host OS edition and the isolation mode a container is being run with, as well as whether these containers are running for dev/test purposes or in production.

HostbetriebssystemHost OS Grenzwert für prozessisolierte ContainerProcess-isolated container limit Grenzwert für Hyper-V-isolierte ContainerHyper-V-isolated container limit
Windows Server StandardWindows Server Standard UnbegrenztUnlimited 22
Windows Server DatacenterWindows Server Datacenter UnbegrenztUnlimited UnbegrenztUnlimited
Windows 10 Pro und EnterpriseWindows 10 Pro and Enterprise Unbegrenzt (nur für Test- oder Entwicklungszwecke)Unlimited (for test or development purposes only) Unbegrenzt (nur für Test- oder Entwicklungszwecke)Unlimited (for test or development purposes only)
Windows 10 IoT Core und EnterpriseWindows 10 IoT Core and Enterprise Unbegrenzt*Unlimited* Unbegrenzt*Unlimited*

Die Nutzung von Windows Server-Containerimages wird durch Lesen der Anzahl der Virtualisierungsgäste bestimmt, die für die betreffende Edition unterstützt werden.Windows Server container image usage is determined by reading the number of virtualization guests supported for that edition.

Hinweis

*Die Verwendung von Containern in einer IoT-Edition von Windows ist abhängig davon, ob Sie die kommerziellen Nutzungsbedingungen von Microsoft für Windows 10 Core-Laufzeitimages oder der Windows 10 IoT Enterprise-Gerätelizenz („Kommerzielle Windows IoT-Vereinbarung“) zugestimmt haben.*Production usage of containers on an IoT edition of Windows depend on if you have agreed to the Microsoft Commercial Terms of Use for Windows 10 Core Runtime Images or the Windows 10 IoT Enterprise Device License (“Windows IoT Commercial Agreement”). Zusätzliche Bestimmungen und Einschränkungen in den kommerziellen Windows-Vereinbarungen gelten für die Verwendung von Containerimages in einer Produktionsumgebung.Additional terms and restrictions in the Windows IoT Commercial Agreements apply to your use of Container Image in a production environment. Lesen Sie die Containerimage-EULA, um genau zu verstehen, was zulässig und was unzulässig ist.Please read the container image EULA to understand exactly what is permitted and what is not.

Muss ich als Entwickler meine App für jeden Containertyp neu schreiben?As a developer, do I have to rewrite my app for each type of container?

NeinNo. Windows-Containerimages sind für Windows Server-Container und Hyper-V-Isolierung gleich.Windows container images are common across both Windows Server containers and Hyper-V isolation. Die Auswahl des Containertyps erfolgt beim Starten des Containers.The choice of container type is made when you start the container. Aus Sicht des Entwicklers sind Windows Server-Container und Hyper-V-Isolierung zwei Varianten der gleichen Sache.From a developer standpoint, Windows Server containers and Hyper-V isolation are two flavors of the same thing. Sie bieten die gleiche Entwicklungs-, Programmier- und Verwaltungserfahrung, sind offen und erweiterbar und beinhalten das gleiche Maß an Integration und Unterstützung wie Docker.They offer the same development, programming, and management experience, and are open and extensible and include the same level of integration and support with Docker.

Ein Entwickler kann ein Containerimage unter Verwendung eines Windows Server-Containers erstellen und es in Hyper-V-Isolierung oder umgekehrt bereitstellen, ohne dass irgendwelche Änderungen vorgenommen werden müssen, außer der Angabe des entsprechenden Laufzeitflags.A developer can create a container image using a Windows Server container and deploy it in Hyper-V isolation or vice-versa without any changes other than specifying the appropriate runtime flag.

Windows Server-Container bieten eine größere Dichte und Leistung, wenn es auf Geschwindigkeit ankommt, z. B. eine geringere Hochfahrzeit und eine schnellere Laufzeitleistung im Vergleich zu geschachtelten Konfigurationen.Windows Server containers offer greater density and performance for when speed is key, such as lower spin-up time and faster runtime performance compared to nested configurations. Die Hyper-V-Isolierung bietet, wie der Name schon sagt, eine stärkere Isolierung, die sicherstellt, dass Code, der in einem Container ausgeführt wird, das Hostbetriebssystem oder andere Container, die auf demselben Host ausgeführt werden, nicht kompromittieren oder beeinträchtigen kann.Hyper-V isolation, true to its name, offers greater isolation, ensuring that code running in one container can't compromise or impact the host operating system or other containers running on the same host. Dies ist hilfreich für mehrinstanzenfähige Szenarien (mit Anforderungen für das Hosten von nicht vertrauenswürdigem Code), einschließlich SaaS-Anwendungen und Computehosting.This is useful for multitenant scenarios with requirements for hosting untrusted code, including SaaS applications and compute hosting.

Kann ich Windows-Container unter Windows 10 im prozessisolierten Modus ausführen?Can I run Windows containers in process-isolated mode on Windows 10?

Ab dem Windows 10-Update vom Oktober 2018 können Sie einen Windows-Container mit Prozessisolierung ausführen. Sie müssen jedoch zunächst Prozessisolierung direkt anfordern, indem Sie das Flag --isolation=process verwenden, wenn Sie Ihre Container mit docker run ausführen.Starting with the Windows 10 October 2018 update, you can run a Windows container with process isolation, but you must first directly request process isolation by using the --isolation=process flag when running your containers with docker run. Prozessisolierung ist mit Windows 10 Pro, Windows 10 Enterprise, Windows 10 IoT Core und Windows 10 IoT Enterprise kompatibel.Process-isolation is compatible on Windows 10 Pro, Windows 10 Enterprise, Windows 10 IoT Core and Windows 10 IoT Enterprise.

Wenn Sie Ihre Windows-Container auf diese Weise ausführen möchten, müssen Sie sicherstellen, dass auf dem Host Windows 10 Build 17763 und höher ausgeführt wird und Sie über eine Docker-Version mit der Engine 18.09 oder höher verfügen.If you want to run your Windows containers this way, you'll need to make sure your host is running Windows 10 build 17763+ and you have a Docker version with Engine 18.09 or newer.

Warnung

Abgesehen von IoT Core- und IoT Enterprise-Hosts (nachdem Sie weitere Bestimmungen und Einschränkungen akzeptiert haben) ist dieses Feature nur für Entwicklung und Tests gedacht.Aside from on IoT Core and IoT Enterprise hosts (after accepting additional terms and restrictions), this feature is only meant for development and testing. Sie sollten weiterhin Windows Server als Host für Produktionsbereitstellungen verwenden.You should continue to use Windows Server as the host for production deployments. Wenn Sie diese Funktion verwenden, müssen Sie auch sicherstellen, dass die Host- und Containerversionstags übereinstimmen, da andernfalls der Container ggf. nicht gestartet wird oder nicht definiertes Verhalten aufweist.By using this feature, you must also ensure that your host and container version tags match, otherwise the container may fail to start or exhibit undefined behavior.

Wie stelle ich meine Containerimages auf Air-Gap-Computern zur Verfügung?How do I make my container images available on air-gapped machines?

Windows-Containerbasisimages enthalten Artefakte, deren Weitergabe durch eine Lizenz eingeschränkt ist.Windows container base images contain artifacts whose distribution is restricted by license. Wenn Sie mit diesen Images Builds erstellen und sie in eine private oder öffentliche Registrierung pushen, werden Sie feststellen, dass die Basisebene niemals gepusht wirdWhen you build on these images and push them to a private or public registry, you'll notice the base layer is never pushed. Stattdessen wird das Konzept einer Fremdebene verwendet, die auf die tatsächliche Basisebene im Azure-Cloudspeicher verweist.Instead, we use the concept of a foreign layer that points to the real base layer residing in Azure cloud storage.

Dies kann die Dinge erschweren, wenn Sie einen Air-Gap-Computer verwenden, der nur Images von der Adresse Ihrer privaten Containerregistrierung abrufen kann.This can complicate things when you have an air-gapped machine that can only pull images from the address of your private container registry. In diesem Fall funktioniert es nicht, der Fremdebene zu folgen, um das Basisimage abzurufen.In this case, attempts to follow the foreign layer to get the base image won't work. Um das Verhalten der Fremdebene außer Kraft zu setzen, können Sie das --allow-nondistributable-artifacts-Flag im Docker-Daemon verwenden.To override the foreign layer behavior, you can use the --allow-nondistributable-artifacts flag in the Docker daemon.

Wichtig

Die Verwendung dieses Flags schließt Ihre Verpflichtung nicht aus, die Bedingungen der Lizenz für Windows-Containerbasisimages einzuhalten. Sie dürfen keinen Windows-Inhalt für die öffentliche oder Drittanbieterverteilung bereitstellen.Usage of this flag shall not preclude your obligation to comply with the terms of the Windows container base image license; you must not post Windows content for public or third-party redistribution. Die Verwendung in ihrer eigenen Umgebung ist zulässig.Usage within your own environment is allowed.

Zusätzliches FeedbackAdditional feedback

Möchten Sie den FAQ etwas hinzufügen?Want to add something to the FAQ? Öffnen Sie im Abschnitt „Kommentare“ ein neues Issue für Feedback, oder richten Sie einen Pull Request für diese Seite mit GitHub ein.Open a new feedback issue in the comments section or set up a pull request for this page with GitHub.