GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

Qu'est-ce qu'un conteneur Docker :un guide d'introduction pour les débutants

Vous voulez savoir ce qu'est un conteneur Docker ? Découvrez tout ce que vous devez savoir dans cet article avec un langage facile à comprendre.

La popularité de Docker n'est pas sans raison. Cela a considérablement changé la façon dont les développeurs abordent le développement d'applications.

Il est devenu un standard dans l'industrie informatique pour le conditionnement, le déploiement et l'exécution d'applications distribuées en toute simplicité.

Le principal avantage de Docker est qu'il permet aux utilisateurs de regrouper une application avec toutes ses dépendances dans une unité standardisée appelée conteneur.

Étant donné que Docker est une plate-forme de conteneurisation, vous devez comprendre l'historique de la conteneurisation.

L'historique avant la conteneurisation

Avant l'arrivée de la conteneurisation, le meilleur moyen d'isoler et d'organiser les applications et leurs dépendances consistait à placer chaque application dans sa machine virtuelle.

Ces machines exécutent plusieurs applications sur le même matériel physique, et ce processus n'est rien d'autre qu'une  virtualisation .

Mais la virtualisation présentait quelques inconvénients, tels que la taille des machines virtuelles. De plus, l'exécution de plusieurs machines virtuelles entraîne des performances instables.

Le processus de démarrage prend généralement beaucoup de temps et les machines virtuelles ne résolvent pas les problèmes tels que la portabilité, les mises à jour logicielles ou l'intégration continue et la livraison continue.

Ces inconvénients ont conduit à l'émergence d'une nouvelle technique appelée conteneurisation .

La conteneurisation est un type de virtualisation qui amène la virtualisation au niveau du système d'exploitation.

Alors que la virtualisation apporte l'abstraction au matériel, la conteneurisation apporte l'abstraction au système d'exploitation.

Conteneurs contre machines virtuelles

Les termes « conteneurs » et « machines virtuelles » sont souvent utilisés de manière interchangeable; cependant, cela est souvent mal compris.

Mais, les deux ne sont que des méthodes différentes pour fournir la virtualisation du système d'exploitation.

Machines virtuelles

Machines virtuelles comprennent généralement un système d'exploitation complet, des packages et, si nécessaire, quelques applications.

Un hyperviseur rend cela possible, qui fournit une virtualisation matérielle à la machine virtuelle.

Cela permet à un seul serveur d'exécuter de nombreux systèmes d'exploitation autonomes en tant qu'invités virtuels. De manière générale, une machine virtuelle est un système qui agit exactement comme un ordinateur.

Conteneurs

Conteneurs sont similaires aux machines virtuelles, sauf que les conteneurs ne sont pas des systèmes d'exploitation complets. Les conteneurs n'incluent généralement que les packages et les applications de système d'exploitation nécessaires.

Ils ne contiennent généralement pas un système d'exploitation complet ou une virtualisation matérielle; ils sont "légers".

Un conteneur est généralement utilisé pour isoler un processus en cours d'exécution au sein d'un seul hôte afin de s'assurer que les processus isolés ne peuvent pas interagir avec d'autres processus au sein de ce même système - conteneurs les processus sandbox les uns des autres.

Pour le dire simplement, vous pouvez considérer un conteneur Docker comme un équivalent léger d'une machine virtuelle.

Docker permet de créer et d'utiliser des conteneurs aussi efficacement que possible.

Raisons d'utiliser les conteneurs Docker

  • Les conteneurs n'ont pas d'OS invité et utilisent le système d'exploitation de l'hôte. Ainsi, ils partagent les bibliothèques et les ressources pertinentes selon les besoins.
  • Isolation des applications :si vous souhaitez exécuter plusieurs applications sur un serveur, conserver les composants de chaque application dans des conteneurs distincts évitera les problèmes de gestion des dépendances.
  • Le traitement et l'exécution des applications sont très rapides puisque les fichiers binaires et les bibliothèques de conteneurs spécifiques aux applications s'exécutent sur le noyau hôte.
  • Démarrer un conteneur ne prend qu'une fraction de seconde.
  • Les conteneurs sont légers et plus rapides que les machines virtuelles.

Qu'est-ce qu'un conteneur Docker ?

Docker est une plate-forme qui regroupe une application et toutes ses dépendances sous la forme de conteneurs.

Il utilise des conteneurs pour faciliter la création, le déploiement et l'exécution des applications. Docker lie l'application et ses dépendances dans un conteneur.

Les conteneurs permettent à un développeur de regrouper une application avec toutes les parties dont elle a besoin, telles que des bibliothèques et d'autres dépendances, et de l'expédier dans un seul package.

Disons que vous devez créer une application. Pour rendre cette application accessible au public, vous avez besoin d'un endroit pour l'héberger. Dans le passé, vous deviez construire votre ordinateur.

Ensuite, vous devrez configurer un service Web dédié appelé "serveur", un ordinateur dédié à l'hébergement de sites Web ou de services Web.

Cependant, votre application peut n'avoir qu'une taille approximative de 300 mégaoctets pour commencer.

Alors, pourquoi voudriez-vous une "machine virtuelle", un environnement virtualisé résultant de la virtualisation, qui a la taille de 1 Go ou plus alors que votre application est bien inférieure à cela ?

Le concept de « conteneur » vient corriger cela. Docker le fait de la manière suivante. Au lieu d'héberger chaque système d'exploitation par application, certaines ressources communes peuvent être partagées, et il existe quelque chose appelé "moteur docker", qui se trouve au-dessus d'un système d'exploitation.

L'adoption de Docker, ou conteneur, permet aux applications d'être déployées ou non déployées plus rapidement. Démarrez et arrêtez plus rapidement, passez à une autre "image" plus rapidement, traitez et faites beaucoup de choses plus rapidement.

Mais cela vous aiderait si vous appreniez à connaître les éléments et outils essentiels de l'écosystème Docker au début.

Fichier Docker

Un Dockerfile est un ensemble d'instructions précises expliquant comment créer une nouvelle image Docker - définissant les valeurs par défaut pour les conteneurs exécutés en fonction de celle-ci et un peu plus.

C'est un document texte qui contient toutes les commandes qu'un utilisateur peut appeler sur la ligne de commande pour assembler une image.

Ainsi, Docker peut créer des images automatiquement en lisant les instructions d'un Dockerfile.

Image Docker

Docker Image peut être comparé à un modèle en lecture seule utilisé pour créer des conteneurs Docker. En d'autres termes, une image est un plan à partir duquel un nombre arbitraire de nouveaux conteneurs peut être démarré.

Aucune "commande en cours d'exécution" n'est enregistrée dans une image. Lorsque vous créez un conteneur, c'est comme si vous démarriez une machine après l'avoir éteinte.

Conteneur Docker

Il s'agit d'une instance en cours d'exécution d'une image Docker car elle contient l'ensemble du package nécessaire pour exécuter l'application.

Imaginez que vous souhaitiez exécuter une commande isolée de tout le reste du système. Il ne doit accéder qu'aux ressources auxquelles il est autorisé et ne sait pas qu'il y a autre chose sur la machine.

Le processus exécuté à l'intérieur d'un conteneur pense qu'il est le seul à voir une distribution Linux barebones comme décrit dans l'image.

Une machine exécutant le conteneur ne devrait pas trop se soucier de ce qu'il y a à l'intérieur, et l'application dockerisée ne se soucie pas de savoir si elle se trouve sur un cluster Kubernetes ou sur un seul serveur - elle pourra fonctionner de toute façon.

Un conteneur peut exécuter plusieurs processus à la fois. Ainsi, par exemple, vous pouvez regrouper de nombreux services dans un seul conteneur et les exécuter côte à côte.

Lorsqu'un conteneur Docker est supprimé, la relance de l'image redémarrera le conteneur sans aucune des modifications apportées au conteneur en cours d'exécution précédent ; ces modifications sont perdues.

Volume Docker

Les images ne changent pas. Vous pouvez en créer de nouveaux, mais c'est tout. Les conteneurs, en revanche, ne laissent rien derrière eux par défaut. Par conséquent, toutes les modifications apportées à un conteneur sont perdues dès qu'il est supprimé.

Pour enregistrer (perserver) les données et partager les données entre les conteneurs, Docker a proposé le concept de volumes . Tout simplement, les volumes sont des répertoires (ou fichiers) en dehors du système de fichiers par défaut et existent en tant que répertoires et fichiers standard sur le système de fichiers hôte.

En d'autres termes, les volumes Docker nous ont permis de conserver les données et de les partager entre les conteneurs.

Conclusion

Nous espérons que cet article vous a aidé à comprendre les principes de base de Docker, à savoir ce qu'est Docker et le conteneur Docker et comment il a révolutionné le développement logiciel.

Avec les connaissances ci-dessus, vous devriez avoir une bonne compréhension de ce qu'est Docker.

Vous pouvez visiter le site Web du projet ou consulter la documentation officielle pour plus d'informations sur Docker.


Docker
  1. Comment exécuter Nginx dans un conteneur Docker :un guide étape par étape

  2. Comment partager des données entre des conteneurs Docker

  3. Comment répertorier les conteneurs Docker

  4. Comment sauvegarder et restaurer des conteneurs Docker

  5. Comment mettre en pause et reprendre les conteneurs Docker

Commandes Docker pour la gestion du cycle de vie des conteneurs (Guide définitif)

Guide du débutant sur la politique de redémarrage de Docker

Que faire si un conteneur Docker se ferme immédiatement

Comment nommer ou renommer les conteneurs Docker

ctop - Interface de type Top pour la surveillance des conteneurs Docker

Guide du débutant sur le monde Docker