GNU/Linux >> Tutoriels Linux >  >> Cent OS

Image Docker vs conteneur :les principales différences

Présentation

Docker est un logiciel open source conçu pour faciliter et simplifier le développement d'applications. Il s'agit d'un ensemble de produits de plate-forme en tant que service qui créent des environnements virtualisés isolés pour créer, déployer et tester des applications.

Bien que le logiciel soit relativement simple à maîtriser, il existe certains termes spécifiques à Docker que les nouveaux utilisateurs peuvent trouver déroutants. Les Dockerfiles, images, conteneurs, volumes et autres termes devront être maîtrisés et devraient devenir une seconde nature au fil du temps.

C'est une bonne idée d'essayer de comprendre les rôles de base de ces éléments. Cela accélérera l'apprentissage de la façon de travailler avec eux. L'une des questions que se posent de nombreux utilisateurs est la suivante :

W quelle est la différence entre une image Docker et un conteneur ?

Cet article explique en quoi les deux diffèrent, ainsi que leurs liens. Lisez la suite pour le savoir.

Qu'est-ce qu'une image Docker ?

Une image Docker est un fichier immuable (non modifiable) qui contient le code source, les bibliothèques, les dépendances, les outils et d'autres fichiers nécessaires à l'exécution d'une application.

En raison de leur lecture seule qualité, ces images sont parfois appelées instantanés. Ils représentent une application et son environnement virtuel à un instant donné. Cette cohérence est l'une des grandes caractéristiques de Docker. Il permet aux développeurs de tester et d'expérimenter des logiciels dans des conditions stables et uniformes.

Puisque les images ne sont, en quelque sorte, que des modèles , vous ne pouvez pas les démarrer ou les exécuter. Ce que vous pouvez faire, c'est utiliser ce modèle comme base pour créer un conteneur. Un conteneur n'est finalement qu'une image en cours d'exécution. Une fois que vous avez créé un conteneur, il ajoute un calque inscriptible au-dessus de l'image immuable, ce qui signifie que vous pouvez maintenant le modifier.

La base d'images sur laquelle vous créez un conteneur existe séparément et ne peut pas être modifiée. Lorsque vous exécutez un environnement conteneurisé, vous créez essentiellement une copie en lecture-écriture de ce système de fichiers (image Docker) à l'intérieur du conteneur. Cela ajoute une couche de conteneur  qui permet des modifications de la copie entière de l'image.

Vous pouvez créer un nombre illimité d'images Docker à partir d'une base d'images . Chaque fois que vous modifiez l'état initial d'une image et que vous enregistrez l'état existant, vous créez un nouveau modèle avec un calque supplémentaire par-dessus.

Les images Docker peuvent donc consister en une série de calques , chacune différente mais également issue de la précédente. Les couches d'images représentent des fichiers en lecture seule auxquels une couche de conteneur est ajoutée une fois que vous l'utilisez pour démarrer un environnement virtuel.

Qu'est-ce qu'un conteneur Docker ?

Un conteneur Docker est un environnement d'exécution virtualisé où les utilisateurs peuvent isoler les applications du système sous-jacent. Ces conteneurs sont des unités compactes et portables dans lesquelles vous pouvez démarrer une application rapidement et facilement.

Une caractéristique précieuse est la standardisation de l'environnement informatique s'exécutant à l'intérieur du conteneur. Non seulement cela garantit que votre application fonctionne dans des circonstances identiques, mais cela simplifie également le partage avec d'autres coéquipiers.

Comme les conteneurs sont autonomes, ils fournissent une forte isolation, garantissant qu'ils n'interrompent pas les autres conteneurs en cours d'exécution, ainsi que le serveur qui les prend en charge. Docker affirme que ces unités "fournissent les capacités d'isolation les plus puissantes de l'industrie". Par conséquent, vous n'aurez pas à vous soucier de garder votre machine sécurisée lors du développement d'une application.

Contrairement aux machines virtuelles (VM) où la virtualisation se produit au niveau matériel, les conteneurs se virtualisent au niveau de la couche d'application. Ils peuvent utiliser une machine, partager son noyau et virtualiser le système d'exploitation pour exécuter des processus isolés. Cela rend les conteneurs extrêmement légers , vous permettant de conserver des ressources précieuses.

Images Docker vs conteneurs

Lorsque l'on discute de la différence entre les images et les conteneurs, il n'est pas juste de les opposer en tant qu'entités opposées. Les deux éléments sont étroitement liés et font partie d'un système défini par la plateforme Docker.

Si vous avez lu les deux sections précédentes qui définissent les images Docker et les conteneurs Docker, vous avez peut-être déjà compris comment les deux établissent une relation.

Les images peuvent exister sans conteneurs, alors qu'un conteneur doit exécuter une image pour exister. Par conséquent, les conteneurs dépendent des images et les utilisent pour créer un environnement d'exécution et exécuter une application.

Les deux concepts existent en tant que composants essentiels (ou plutôt phases) dans le processus d'exécution d'un conteneur Docker. Avoir un conteneur en cours d'exécution est la « phase » finale de ce processus, ce qui indique qu'il dépend des étapes et des composants précédents. C'est pourquoi les images docker régissent et façonnent essentiellement les conteneurs.

De Dockerfile à l'image au conteneur

Tout commence par un script d'instructions qui définissent comment créer une image Docker spécifique. Ce script s'appelle un Dockerfile. Le fichier exécute automatiquement les commandes décrites et crée une image Docker .

La commande pour créer une image à partir d'un Dockerfile est docker build .

L'image est ensuite utilisée comme modèle (ou base), qu'un développeur peut copier et utiliser pour exécuter une application. L'application a besoin d'un environnement isolé dans lequel s'exécuter :un conteneur .

Cet environnement n'est pas qu'un « espace » virtuel. Il repose entièrement sur l'image qui l'a créé. Le code source, les fichiers, les dépendances et les bibliothèques binaires, qui se trouvent tous dans l'image Docker, sont ceux qui composent un conteneur.

Pour créer une couche de conteneur à partir d'une image, utilisez la commande docker create .

Enfin, après avoir lancé un conteneur à partir d'une image existante, vous démarrez son service et exécutez l'application.


Cent OS
  1. 7 fonctionnalités amusantes de conteneurs/transports d'images Linux

  2. Extraire le fichier de l'image Docker ?

  3. Comment mettre à jour/ajouter un fichier dans l'image Docker

  4. Que contient une image/un conteneur Docker ?

  5. Quel système d'exploitation s'exécute dans mon conteneur Docker ?

Comment installer l'image AlmaLinux 8 dans le conteneur Docker

Comment vérifier si le démon Docker ou un conteneur est en cours d'exécution

Comment inspecter le contenu d'une image Docker sans démarrer un conteneur

Comment créer une image Docker à partir d'un conteneur en cours d'exécution

Comment mettre à jour les images Docker vers la dernière version

Comment utiliser Docker Commit pour modifier les images de conteneur