Qu’est-ce qu’une image de conteneur ?

Homme d’affaires assis sur un banc à l’extérieur d’un immeuble de bureaux utilisant un ordinateur portable

Auteurs

Phill Powell

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

Qu’est-ce qu’une image de conteneur ?

Les images de conteneurs sont des fichiers statiques immuables, qui contiennent du code exécutable et fonctionnent de manière isolée sur l’infrastructure informatique.

L’image de conteneur rassemble tous les composants nécessaires pour créer un conteneur sur un système d’exploitation, et comprend différentes couches d’images empilées les unes sur les autres. Les images de conteneurs sont immuables et proposent les mêmes fonctions que les templates.

Les images de conteneurs sont stockées dans un registre d’images de conteneurs (ou « container registry ») qui sert de système de fichiers. Un registre de conteneurs désigne un ou plusieurs référentiels de données qui entreposent des images de conteneurs à des fins de stockage et/ou d’accès.

L’un des avantages notables des registres de conteneurs réside dans leur facilité à se connecter aux systèmes/plateformes d’orchestration de conteneurs, comme Kubernetes et Docker. En outre, les registres de conteneurs peuvent être utilisés à des fins DevOps lors du développement d’applications conteneurisées, afin d’optimiser l’intégration des workflows.

Vue aérienne d’autoroutes

Gardez la tête dans le cloud 


Recevez la newsletter hebdomadaire Think pour obtenir des conseils d’experts sur l’optimisation des paramètres multicloud à l’ère de l’IA.

Comment les images de conteneur sont-elles créées ?

Une image conteneur est une accumulation de couches assemblées comme suit :

  • Image de base
  • Bibliothèques
  • Binaires
  • Dépendances
  • Fichiers de configuration

Lors de la création de nouvelles images, tout commence par la couche inférieure, c’est-à-dire l’image de base. Celle-ci constitue le point de départ de la plupart des workflows de développement basés sur des conteneurs. De nombreuses images de base comprennent des distributions Linux basiques ou minimales (telles que Debian, Ubuntu, Red Hat Enterprise Linux (RHEL), Rocky Linux ou Alpine). C’est dans les images de base que sont stockés les fichiers du système de fichiers du conteneur. Le processus de création d’images de base permet aux développeurs de créer un environnement standardisé qui prend en charge les images de conteneurs personnalisées.

Ensuite, une succession de couches de système de fichiers est ajoutée et empilée au-dessus de l’image de base, notamment :

  • Les bibliothèques requises, qui sont des collections standard d’algorithmes et de templates de classes que les programmeurs peuvent utiliser pour créer des structures de données communes (par exemple, des listes, des piles et des files d’attente)
  • Les binaires nécessaires, c’est-à-dire les fichiers exécutables requis pour mettre en œuvre les différents programmes et commandes. Les dossiers binaires sont conçus pour que les utilisateurs puissent accéder rapidement aux exécutables dont ils ont besoin.
  • Les diverses dépendances, qui régissent la création et l’exploitation des conteneurs.
  • Les fichiers de configuration (configs) nécessaires pour exécuter le conteneur en question.

Concernant les images de conteneurs qui incorporent des images déjà existantes, l’image de base de ces dernières est appelée image parente. Les images d’origine n’ont pas d’image parente.

AI Academy

Se préparer à l’IA avec le cloud hybride

Dirigé par des leaders d’opinion IBM, le programme a pour but d’aider les chefs d’entreprise à acquérir les connaissances nécessaires qui leur permettront d’orienter leurs investissements IA vers les opportunités les plus prometteuses.

Comment fonctionnent les images de conteneurs ?

Les images de conteneurs sont stockées dans des registres de conteneurs ; elles peuvent être téléchargées dans le registre en question (« push »), ou téléchargées dans un autre système (« extraction »).

Object Storage

Les registres de conteneurs s’appuient sur le stockage d’objets pour inclure des métadonnées dans les images de conteneurs. Il s’agit d’un moyen efficace de transférer ces métadonnées, mais non moins limité. Par exemple, dans le cas des données impliquant plusieurs images, le nombre de balises disponibles est limité.

Conteneurs pour dépendances

Les conteneurs pour dépendances constituent une autre méthode de stockage. Ces conteneurs permettent la gestion, l’enregistrement et la résolution des dépendances dans une application. Les dépendances décrivent les situations dans lesquelles un objet ou un processus doit se produire afin qu’un autre puisse fonctionner comme prévu.

L'authentification

Compte tenu du besoin urgent de sécurité en ligne, l’authentification des personnes autorisées à accéder aux référentiels est essentielle. L’authentification repose sur une série d’autorisations spécifiques à ce registre de conteneurs. Les autorisations définissent qui peut utiliser les ressources informatiques présentes dans le registre de conteneurs.

Environnements d’exécution de conteneurs

L’importance de l’environnement d’exécution est vitale. L’environnement d'exécution est un logiciel qui permet aux conteneurs de fonctionner au sein d’un système hôte. Les environnements d’exécution suivent une série d’étapes pour assurer la création des conteneurs. Ces étapes vont de la formation des conteneurs à l’initialisation de leur environnement, guidées par une image de conteneur qui contient l’application et ses dépendances.

Docker et Kubernetes

Il existe deux fournisseurs d’orchestration de conteneurs incontournables :

Docker

Docker est un système d’orchestration de conteneurs qui simplifie la création, le déploiement et l’exécution des applications. Docker facilite la création de conteneurs légers, portables et autonomes, compatibles avec tout type de plateforme, quelle que soit l’infrastructure. Parce qu’ils peuvent être déplacés d’une machine à l’autre, les conteneurs Docker offrent également une portabilité exceptionnelle. En outre, Docker offre une méthode standard de déploiement des microservices, que l’utilisateur peut empaqueter sous forme d’images de conteneurs.

La ressource d’images de Docker, appelée DockerHub, offre un accès gratuit à plus de 100 000 images et autres types de fichiers partagés par les utilisateurs Docker, les éditeurs de logiciels et les projets open source. Un service de registre de conteneurs payant est également proposé pour un usage privé. Les images Docker s’appuient sur une interface de ligne de commande Docker (Docker CLI) qui permet des opérations clés telles que la connexion, le push et l’extraction. Les utilisateurs créent des images Docker grâce à la fonctionnalité Docker Build de Docker Engine, qui permet l’empaquetage et le regroupement du code source. Docker peut être configuré grâce aux fichiers JavaScript Object Notation (JSON). Le format JSON est privilégié car il permet de conserver toutes les configurations au même endroit.

Kubernetes

Kubernetes est une plateforme d’orchestration de conteneurs open source. Kubernetes est utilisé pour automatiser de nombreux processus logiciels tels que la gestion, le déploiement et la mise à l’échelle. Dans les services Kubernetes, un ou plusieurs ordinateurs (machines virtuelles ou Bare Metal Servers) sont liés dans un cluster permettant l’exécution de workloads conteneurisées de tailles et de types différents. Le serveur d’API (interface de programmation d’applications) Kubernetes configure les données des objets d’API tels que les pods, les services, les contrôleurs de réplication, etc. Les API permettent aux différentes applications logicielles de communiquer et de coopérer pour partager les données.

Si Docker et Kubernetes fournissent des services similaires, ils diffèrent en termes d’échelle. Docker est un environnement d’exécution des conteneurs, tandis que Kubernetes est une plateforme complète qui prend en charge les conteneurs à partir de plusieurs environnements d’exécution. Docker n’est que l’un des environnements d’exécution des conteneurs pris en charge par Kubernetes.

Avantages de l’image de conteneur

L’image de conteneur est une composante clé des registres de conteneurs.

Déploiement rapide

Les images de conteneurs sont pensées et conçues pour contenir tout ce qui est nécessaire à l’exécution d’un conteneur. Une fois les images de conteneurs créées, il suffit d’une invite du système informatique pour exécuter les conteneurs. Les images de conteneurs sont donc parfaitement adaptées à une mise en œuvre rapide.

Disponibilité permanente

Les priorités des entreprises peuvent changer du jour au lendemain. En créant leurs images de conteneurs à l’avance, elles sont en mesure de prévoir tous leurs besoins en matière de conteneurs, puis de sélectionner, le moment venu, les conteneurs les mieux adaptés à leurs objectifs. Les images de conteneurs permettent aux entreprises de s’adapter en toutes circonstances.

Utilisation sécurisée

La sécurité des images de conteneurs est assurée grâce aux contrôles d’accès appliqués par les registres de conteneurs. Il s’agit notamment de protocoles d’authentification qui garantissent qu’aucune personne non autorisée ne peut accéder aux images de conteneurs. Le chiffrement des images est désormais couramment utilisé pour coder les images et prévenir les vulnérabilités.

Cas d’utilisation des images de conteneurs

Les activités suivantes font largement appel aux images de conteneurs :

Applications cloud natives

Les déploiements conteneurisés, renforcés par l’utilisation d’images de conteneurs, prennent en charge les architectures cloud natives assurant isolation et flexibilité. Les conteneurs et les images de conteneurs permettent aux utilisateurs de créer et d’optimiser leurs applications cloud natives évolutives.

Microservices

De nombreux registres de conteneurs (ainsi que les images de conteneurs qu’ils contiennent) facilitent la vie des utilisateurs de microservices en simplifiant la localisation et la connexion des microservices au sein des clusters.

Machines virtuelles

Les machines virtuelles (VM) sont des systèmes informatiques qui utilisent un logiciel sur un ordinateur pour imiter les fonctions d’un autre ordinateur. Les ViM ont une relation unique avec les images de conteneurs. On utilise souvent les machines virtuelles comme système d’exploitation hôte, au lieu d’exécuter les conteneurs directement sur le matériel, surtout si les conteneurs doivent être exécutés dans le cloud.

Les principaux fournisseurs d’images de conteneurs

Le marché des images de conteneurs est fluide et dynamique, avec une activité soutenue et de nombreux acteurs du secteur qui y entrent et en sortent. Les fournisseurs suivants se sont toutefois forgé une réputation durable sur ce marché :

  • Amazon : Amazon Web Services (AWS) exploite Amazon Elastic Container Registry (ECR), qui intègre Amazon Inspector, conçu pour gérer l’analyse des vulnérabilités présentes dans les images de conteneurs. ECR prend également en charge la réplication inter-comptes et interrégionale pour faciliter l’accès aux images.
  • Apache : Apache est un logiciel de serveur Web open source proposé gratuitement par l’Apache Software Foundation. Cette dernière estime que le logiciel Apache est exécuté sur environ 30 % des serveurs Web.
  • GitHub : la plateforme propriétaire GitHub (aujourd’hui détenue par Microsoft) est plébiscitée par les développeurs car elle favorise le partage et la gestion du code, ainsi que la collaboration.
  • IBM : IBM Cloud Container Registry permet de lancer facilement son propre registre et d’y charger les images privées à utiliser avec IBM Cloud Kubernetes Service. Les utilisateurs bénéficient d’un registre confidentiel, entièrement géré. Le service, qui peut être testé gratuitement, est facturé à l’utilisation, permettant aux utilisateurs de ne payer que ce qu’ils consomment.
  • Microsoft : la plateforme Azure de Microsoft s’appuie sur Azure Container Registry (ACR), qui contient des images Docker et OCI (Open Container Initiative), et prend en charge les artefacts OCI. La fonctionnalité de registre connecté d'ACR (incluse dans le service premium) crée une réplique sur site ou à distance qui synchronise les images de conteneurs et les artefacts OCI avec l’ACR cloud. Ce dernier accepte les images Windows et Linux. Une méthode d’interagir avec les programmes informatiques consiste à écrire et à entrer des lignes de texte, également connues sous le nom de lignes de commande. Les systèmes d’exploitation qui utilisent cette méthode d’interaction intègrent une interface de ligne de commande (CLI). La plupart des utilisateurs d’ordinateurs utilisent désormais une interface utilisateur graphique (GUI), bien que les CLI soient toujours privilégiées par ceux qui écrivent des scripts à des fins d’automatisation. Flexible, Azure permet d’utiliser l’interface de ligne de commande Docker pour exécuter des opérations d’image de conteneurs clés.
  • Python : Python est un langage de programmation interprété de haut niveau et orienté objet, proposé par la Python Software Foundation. Ses structures de données intégrées en font une solution parfaitement adaptée aux workloads nécessitant un développement applicatif rapide. Le principal avantage que Python apporte aux programmeurs logiciels est sa facilité d’utilisation, due en grande partie à l’absence de l’étape de compilation. Cela permet aux programmeurs d’utiliser un cycle de débogage accéléré pour gagner du temps.
  • Red Hat : Red Hat promeut la programmation sous Linux depuis sa création en 1993. Son registre de conteneurs, OpenShift Container Platform (OCP), permet aux utilisateurs d’accéder automatiquement aux référentiels d’images à la demande et leur offre un emplacement standard pour envoyer les images résultant des versions de leurs applications.
Solutions connexes
IBM Red Hat OpenShift

Red Hat OpenShift on IBM Cloud est une plateforme de conteneurs OpenShift entièrement gérée.

Découvrir Red Hat OpenShift
Solutions de conteneurs

Les solutions de conteneurs exécutent et étendent les workloads conteneurisés avec sécurité, innovation open source et déploiement rapide.

Découvrir les conteneurs
Services de conseil cloud 

Déverrouillez de nouvelles fonctionnalités et stimulez l’agilité de votre entreprise grâce aux services de conseil d’IBM Cloud. Découvrez comment co-créer des solutions, accélérer la transformation numérique et optimiser les performances grâce à des stratégies de cloud hybride et à des partenariats d’experts.

Services cloud
Passez à l’étape suivante

Modernisez votre infrastructure grâce aux solutions de conteneurs IBM. Exécutez, mettez à l’échelle et gérez des workloads conteneurisés dans tous les environnements avec flexibilité, sécurité et efficacité en utilisant la plateforme complète de conteneurs d’IBM.

Découvrir les solutions de conteneurs Créer votre compte IBM Cloud gratuit