Forum aux questions sur les conteneursFrequently asked questions about containers

Quelle est la différence entre les conteneurs Linux et Windows Server ?What's the difference between Linux and Windows Server containers?

Linux et Windows Server implémentent tous deux des technologies similaires au sein de leurs systèmes d’exploitation noyau et principal.Linux and Windows Server both implement similar technologies within their kernel and core operating systems. La différence provient de la plateforme et des charges de travail qui s’exécutent dans les conteneurs.The difference comes from the platform and workloads that run within the containers.

Lorsqu’un client utilise des conteneurs Windows Server, il peut s’intégrer à des technologies Windows existantes, telles que .NET, ASP.NET et PowerShell.When a customer uses Windows Server containers, they can integrate with existing Windows technologies, such as .NET, ASP.NET, and PowerShell.

Quelles sont les conditions préalables à l’exécution des conteneurs sur Windows ?What are the prerequisites for running containers on Windows?

Les conteneurs ont été introduits sur la plateforme avec Windows Server 2016.Containers were introduced to the platform with Windows Server 2016. Pour utiliser des conteneurs, vous avez besoin de Windows Server 2016 ou de la mise à jour anniversaire Windows 10 (version 1607) ou plus récente.To use containers, you'll need either Windows Server 2016 or the Windows 10 Anniversary update (version 1607) or newer. Pour en savoir plus, consultez la Configuration système requise .Read the System Requirements to learn more.

Qu’est-ce que WCOW et LCOW ?What are WCOW and LCOW?

WCOW est short pour « conteneurs Windows sur Windows ».WCOW is short for "Windows containers on Windows." LCOW est short pour les « conteneurs Linux sur Windows ».LCOW is short for "Linux containers on Windows."

Comment les conteneurs sont-ils sous licence ?How are containers licensed? Le nombre de conteneurs que je peux exécuter est-il limité ?Is there a limit to the number of containers I can run?

Le CLUF de l’image de conteneur Windows décrit une utilisation qui dépend d’un utilisateur disposant d’un système d’exploitation hôte sous licence valide.The Windows container image EULA describes a usage that depends on a user having a validly licensed host OS. Le nombre de conteneurs qu’un utilisateur est autorisé à exécuter dépend de l’édition du système d’exploitation hôte et du mode d’isolation avec lequel un conteneur est exécuté, ainsi que de l’exécution de ces conteneurs à des fins de développement/test ou en production.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.

Système d’exploitation hôteHost OS Limite de conteneur isolée dans les processusProcess-isolated container limit Limite de conteneur Hyper-V-isoléHyper-V-isolated container limit
Windows Server StandardWindows Server Standard IllimitéUnlimited 22
Windows Server DatacenterWindows Server Datacenter IllimitéUnlimited IllimitéUnlimited
Windows 10 professionnel et entrepriseWindows 10 Pro and Enterprise Illimité (à des fins de test ou de développement uniquement)Unlimited (for test or development purposes only) Illimité (à des fins de test ou de développement uniquement)Unlimited (for test or development purposes only)
Windows 10 IoT Core et EnterpriseWindows 10 IoT Core and Enterprise QuantitéUnlimited* QuantitéUnlimited*

L’utilisation des images de conteneur Windows Server est déterminée en lisant le nombre d’invités de virtualisation pris en charge pour cette édition.Windows Server container image usage is determined by reading the number of virtualization guests supported for that edition.

Notes

*l’utilisation de la production de conteneurs sur une édition IoT de Windows dépend de si vous avez convenu des conditions d’utilisation commerciales Microsoft pour les images du runtime Windows 10 Core ou la licence d’appareil Windows 10 IoT Enterprise (« contrat commercial Windows IoT »).*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”). Des termes et restrictions supplémentaires dans les contrats commerciaux Windows IoT s’appliquent à votre utilisation de l’image conteneur dans un environnement de production.Additional terms and restrictions in the Windows IoT Commercial Agreements apply to your use of Container Image in a production environment. Veuillez lire le CLUF de l’image conteneur pour comprendre exactement ce qui est autorisé et ce qui ne l’est pas.Please read the container image EULA to understand exactly what is permitted and what is not.

En tant que développeur, dois-je réécrire mon application pour chaque type de conteneur ?As a developer, do I have to rewrite my app for each type of container?

Non.No. Les images de conteneur Windows sont communes aux conteneurs Windows Server et à l’isolation Hyper-V.Windows container images are common across both Windows Server containers and Hyper-V isolation. Le choix du type de conteneur est effectué quand vous démarrez le conteneur.The choice of container type is made when you start the container. Du point de vue du développeur, les conteneurs Windows Server et l’isolation Hyper-V sont deux versions du même élément.From a developer standpoint, Windows Server containers and Hyper-V isolation are two flavors of the same thing. Ils offrent la même expérience de développement, de programmation et de gestion, et sont ouverts et extensibles, et incluent le même niveau d’intégration et de prise en charge de l’arrimeur.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.

Un développeur peut créer une image de conteneur à l’aide d’un conteneur Windows Server et la déployer dans l’isolation Hyper-V ou inversement sans modification autre que la spécification de l’indicateur d’exécution approprié.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.

Les conteneurs Windows Server offrent une plus grande densité et de meilleures performances quand la vitesse est importante, par exemple une réduction du temps de rotation et des performances d’exécution plus rapides par rapport aux configurations imbriquées.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. L’isolation Hyper-V, true pour son nom, offre une isolation plus importante, en garantissant que le code s’exécutant dans un conteneur ne peut pas compromettre ni affecter le système d’exploitation hôte ou d’autres conteneurs exécutés sur le même hôte.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. Cela est utile pour les scénarios multi-locataires avec des exigences pour l’hébergement de code non fiable, y compris les applications SaaS et l’hébergement de calcul.This is useful for multitenant scenarios with requirements for hosting untrusted code, including SaaS applications and compute hosting.

Puis-je exécuter des conteneurs Windows en mode isolé du processus sur Windows 10 ?Can I run Windows containers in process-isolated mode on Windows 10?

À compter de la mise à jour 2018 de Windows 10 octobre, vous pouvez exécuter un conteneur Windows avec l’isolation des processus, mais vous devez d’abord demander l’isolation du processus à l’aide de l’indicateur --isolation=process lors de l’exécution de vos conteneurs avec docker run.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. L’isolation des processus est compatible sur Windows 10 professionnel, Windows 10 entreprise, Windows 10 IoT Core et Windows 10 IoT Enterprise.Process-isolation is compatible on Windows 10 Pro, Windows 10 Enterprise, Windows 10 IoT Core and Windows 10 IoT Enterprise.

Si vous souhaitez exécuter vos conteneurs Windows de cette manière, vous devez vous assurer que votre ordinateur hôte exécute Windows 10 Build 17763 + et que vous disposez d’une version de l’arrimeur avec le moteur 18,09 ou une version ultérieure.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.

Avertissement

Hormis sur les hôtes IoT Core et IoT Enterprise (après avoir accepté des conditions générales supplémentaires), cette fonctionnalité est uniquement destinée au développement et aux tests.Aside from on IoT Core and IoT Enterprise hosts (after accepting additional terms and restrictions), this feature is only meant for development and testing. Vous devez continuer à utiliser Windows Server comme hôte pour les déploiements de production.You should continue to use Windows Server as the host for production deployments. En utilisant cette fonctionnalité, vous devez également vous assurer que les balises de version de l’hôte et du conteneur correspondent. sinon, le conteneur peut ne pas démarrer ou présenter un comportement indéfini.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.

Comment faire rendre mes images de conteneur disponibles sur les machines à airer ?How do I make my container images available on air-gapped machines?

Les images de base de conteneur Windows contiennent des artefacts dont la distribution est limitée par la licence.Windows container base images contain artifacts whose distribution is restricted by license. Lorsque vous créez sur ces images et les transmettent à un registre public ou privé, vous remarquerez que la couche de base n’est jamais envoyée.When you build on these images and push them to a private or public registry, you'll notice the base layer is never pushed. Au lieu de cela, nous utilisons le concept de couche étrangère qui pointe vers la couche de base réelle résidant dans le stockage cloud Azure.Instead, we use the concept of a foreign layer that points to the real base layer residing in Azure cloud storage.

Cela peut compliquer les choses lorsque vous avez une machine de type « air » qui ne peut extraire que des images à partir de l’adresse de votre registre de conteneurs privé.This can complicate things when you have an air-gapped machine that can only pull images from the address of your private container registry. Dans ce cas, les tentatives de suivi de la couche étrangère pour récupérer l’image de base ne fonctionneront pas.In this case, attempts to follow the foreign layer to get the base image won't work. Pour remplacer le comportement de la couche étrangère, vous pouvez utiliser l’indicateur --allow-nondistributable-artifacts dans le démon de l’ancrage.To override the foreign layer behavior, you can use the --allow-nondistributable-artifacts flag in the Docker daemon.

Important

L’utilisation de cet indicateur n’exclut pas votre obligation de se conformer aux termes de la licence d’image de base du conteneur Windows ; vous ne devez pas poster un contenu Windows pour une redistribution publique ou tierce.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. L’utilisation dans votre propre environnement est autorisée.Usage within your own environment is allowed.

Commentaires supplémentairesAdditional feedback

Vous souhaitez ajouter des éléments au Forum aux questions ?Want to add something to the FAQ? Ouvrez un nouveau problème de commentaires dans la section commentaires ou configurez une demande de tirage (pull request) pour cette page avec GitHub.Open a new feedback issue in the comments section or set up a pull request for this page with GitHub.