Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : Windows Server 2025, Windows Server 2022, Windows Server 2019, Windows Server 2016
Les conteneurs constituent une technologie d’empaquetage et d’exécution d’applications Windows et Linux, dans le cloud et divers environnements locaux. Les conteneurs offrent un environnement léger et isolé qui simplifie le développement, le déploiement et la gestion des applications. Les conteneurs démarrent et s’arrêtent rapidement, ce qui les rend idéaux pour les applications qui doivent s’adapter promptement à l’évolution de la demande. La nature légère des conteneurs les rend également utiles pour augmenter la densité et l’utilisation de votre infrastructure.
L’écosystème des conteneurs Microsoft
Microsoft fournit de nombreux outils et plateformes pour vous aider à développer et déployer des applications dans des conteneurs :
Exécutez des conteneurs Windows ou Linux sur Windows 10 à des fins de développement et de test avec Docker Desktop, ce qui vous permet d’utiliser les fonctionnalités de conteneurs intégrées à Windows. Vous pouvez également exécuter des conteneurs en mode natif sur Windows Server.
Développez, testez, publiez et déployez des conteneurs Windows avec une prise en charge solide des conteneurs dans Visual Studio et Visual Studio Code, ce qui inclut la prise en charge de Docker, Docker Compose, Kubernetes, Helm et d’autres technologies avantageuses.
Publiez vos applications sous forme d’images conteneur sur l’instance DockerHub publique afin que d’autres personnes puissent les utiliser, ou sur une instance Azure Container Registry privée pour le développement et déploiement de votre propre organisation, en procédant à l’envoi (push) et au tirage (pull) directement à partir de Visual Studio et de Visual Studio Code.
Déployez des conteneurs à grande échelle sur Azure ou d’autres clouds :
Extrayez votre application à partir d’un registre de conteneurs, comme Azure Container Registry, puis déployez-la et gérez-la à grande échelle à l’aide d’un orchestrateur tel qu’Azure Kubernetes Service (AKS).
Azure Kubernetes Service déploie des conteneurs sur des machines virtuelles Azure et les gère à grande échelle. Vous pouvez exécuter des dizaines, des centaines, voire des milliers de conteneurs.
Les machines virtuelles Azure exécutent une image Windows Server personnalisée pour les applications Windows ou une image Ubuntu Linux personnalisée pour les applications Linux.
Déployez des conteneurs locaux à l’aide d’Azure Kubernetes Service (AKS) activé par Azure Arc, moteur AKS sur Azure Stack Hub ou Azure Stack Hub avec OpenShift. Vous pouvez également configurer Kubernetes vous-même sur Windows Server. Pour plus d’informations, consultez Kubernetes sur Windows. Microsoft développe également la prise en charge des conteneurs Windows sur RedHat OpenShift Container Platform.
Fonctionnement des conteneurs
Un conteneur est un package isolé et léger qui permet d’exécuter une application sur le système d’exploitation hôte. Les conteneurs s’exécutent sur le noyau du système d’exploitation hôte (que vous pouvez considérer comme la plomberie enterrée du système d’exploitation), comme illustré dans le diagramme suivant.
Bien qu’un conteneur partage le noyau du système d’exploitation hôte, il n’obtient pas un accès sans limites à celui-ci. Le conteneur récupère plutôt une vue isolée, et virtualisée dans certains cas, du système. Par exemple, un conteneur peut accéder à une version virtualisée du système de fichiers et du Registre, mais les modifications effectuées n’affectent que le conteneur et sont ignorées lorsqu’il s’arrête. Pour enregistrer des données, le conteneur peut monter un stockage persistant tel qu’un disque Azure ou un partage de fichiers comme Azure Files.
Un conteneur s’appuie sur le noyau, mais le noyau ne fournit pas toutes les API et services qu’une application doit exécuter. La plupart de ces API et services proviennent de fichiers système (bibliothèques) qui s’exécutent au-dessus du noyau en mode utilisateur. Étant donné qu’un conteneur est isolé de l’environnement du mode utilisateur de l’hôte, le conteneur a besoin de sa propre copie de ces fichiers système en mode utilisateur. Ces fichiers sont empaquetés dans une image de base. L’image de base sert de couche de base sur laquelle vous générez votre conteneur, en lui fournissant des services de système d’exploitation non fournis par le noyau.
Conteneurs ou machines virtuelles
Contrairement à un conteneur, une machine virtuelle exécute un système d’exploitation complet, y compris son propre noyau, comme illustré dans le diagramme suivant.
Les conteneurs et les machines virtuelles ont chacun leur utilisation. En fait, de nombreux déploiements de conteneurs utilisent des machines virtuelles comme système d’exploitation hôte plutôt que de s’exécuter directement sur le matériel, en particulier lors de l’exécution de conteneurs dans le cloud.
Pour plus d’informations sur les similitudes et les différences de ces technologies complémentaires, consultez Conteneurs et machines virtuelles.
Images de conteneur
Vous créez tous les conteneurs à partir d’images conteneur. Une image conteneur est un ensemble de fichiers organisés en une pile de couches résidant sur votre machine locale ou dans un registre de conteneurs distant. Une image conteneur se compose des fichiers du système d’exploitation en mode utilisateur que votre application doit exécuter. L’image inclut également les runtimes, les dépendances et tous les fichiers de configuration requis par votre application.
Microsoft propose plusieurs images (appelées images de base) que vous pouvez utiliser comme point de départ pour créer votre propre image conteneur :
- Windows : l’ensemble complet des services système (moins les rôles serveur) et API Windows.
- Windows Server : l’ensemble complet des services système et des API Windows.
- Windows Server Core : une image plus petite qui contient un sous-ensemble des API Windows Server, c’est-à-dire le .NET Framework complet. Il inclut également la plupart des rôles serveur, mais pas tous les rôles de serveur (par exemple, le serveur de télécopie n’est pas inclus).
- Nano Server : la plus petite image Windows Server, qui inclut la prise en charge des API .NET Core et de certains rôles serveur.
Les images de conteneurs sont composées d’une série de couches. Chaque couche contient un ensemble de fichiers qui, lorsqu’ils sont superposés, représentent votre image conteneur. En raison de la nature superposée des conteneurs, vous n’avez pas toujours besoin de cibler une image de base pour générer un conteneur Windows. Au lieu de cela, vous pouvez cibler une autre image qui porte déjà le framework souhaité. Par exemple, l’équipe .NET publie une image .NET Core qui comporte le runtime .NET Core. Elle évite aux utilisateurs de devoir dupliquer le processus d’installation de .NET Core : ils peuvent, à la place, réutiliser les couches de cette image conteneur. L’image .NET Core elle-même est basée sur Nano Server.
Pour plus d’informations, consultez Images de base de conteneur.
Utilisateurs de conteneur
Conteneurs pour les développeurs
Les conteneurs aident les développeurs à générer et à livrer des applications de meilleure qualité, plus rapidement. Avec les conteneurs, les développeurs peuvent créer une image conteneur qui se déploie en quelques secondes, de la même manière dans plusieurs environnements. Les conteneurs jouent le rôle de mécanisme simple permettant de partager du code entre des équipes, et de démarrer un environnement de développement sans impacter le système de fichiers de votre hôte.
Les conteneurs sont portables et polyvalents, ils peuvent exécuter des applications écrites dans n’importe quel langage et sont compatibles avec toute machine exécutant Windows 10, version 1607 ou ultérieure, et Windows Server 2016 ou ultérieur. Les développeurs peuvent créer et tester localement un conteneur sur leur ordinateur portable ou leur appareil de bureau, puis déployer cette même image conteneur sur le cloud privé de leur société, cloud public ou fournisseur de services. De nature agile, les conteneurs prennent en charge les modèles de développement d’applications modernes dans des environnements cloud, virtualisés et à grande échelle. L’avantage le plus utile pour les développeurs est peut-être la possibilité d’isoler l’environnement afin que l’application récupère toujours la version spécifiée des bibliothèques, en évitant les conflits avec les dépendances.
Conteneurs pour les professionnels de l’informatique
Les conteneurs permettent aux administrateurs de créer une infrastructure plus facile à mettre à jour et à gérer, et qui tire pleinement parti des ressources matérielles. Les professionnels de l’informatique peuvent utiliser des conteneurs pour fournir des environnements standardisés à leurs équipes de développement, d’assurance qualité et de production. En utilisant des conteneurs, les administrateurs système font abstraction des différences dans les installations des systèmes d’exploitation et l’infrastructure sous-jacente.
Vous pouvez également utiliser le mode interactif des conteneurs pour exécuter des instances en conflit d’un outil en ligne de commande sur le même système.
Orchestration de conteneurs
Les orchestrateurs constituent un élément essentiel de l’infrastructure lors de la configuration d’un environnement basé sur conteneur. Les orchestrateurs sont essentiels lors de la gestion des applications conteneurisées à grande échelle. Bien que vous puissiez gérer manuellement quelques conteneurs à l’aide de Docker et De Windows, les applications utilisent souvent cinq, dix ou même des centaines de conteneurs, ce qui rend les orchestrateurs indispensables.
Les orchestrateurs de conteneurs ont été créés pour faciliter la gestion des conteneurs, à grande échelle et en production. Les orchestrateurs offrent les fonctionnalités suivantes :
Les orchestrateurs permettent de développer des applications conteneurisées à grande échelle, en fournissant les fonctionnalités suivantes :
- Déploiement à grande échelle
- Planification de la charge de travail
- Analyse de l'intégrité
- Basculement en cas de défaillance d’un nœud
- Possibilité d’effectuer des scale-up ou scale-down
- Mise en réseau
- Détection du service
- Coordination des mises à niveau d’applications
- Affinité de nœud de cluster
Les différents orchestrateurs que vous pouvez utiliser avec les conteneurs Windows sont nombreux. Voici les options que Microsoft fournit :
- Azure Kubernetes Service (AKS) : utilisation d’un service Azure Kubernetes managé
- Azure Kubernetes Service (AKS) sur Azure Stack HCI : utilisation d’Azure Kubernetes Service en local
Essayer les conteneurs sur Windows
Pour commencer à utiliser des conteneurs sur Windows Server ou Windows 10, consultez l’article suivant :
Pour obtenir de l’aide sur la détermination des services Azure appropriés pour votre scénario, consultez les services de conteneur Azure et choisissez les services Azure à utiliser pour héberger votre application.
Ressources
Pour afficher les ressources pour utiliser des conteneurs Windows Server, consultez les ressources suivantes :
Pour les problèmes actuels et les mises à niveau de fonctionnalités planifiées, consultez le référentiel GitHub sur les conteneurs Windows.
Consultez le blog : Blog sur les conteneurs Windows.
Pour contacter l’équipe des conteneurs Windows Server, envoyez un e-mail au groupe des clients conteneurs Windows.