Docker : image vs container - quelles différences ?

Les images et les conteneurs Docker assurent respectivement l’exécution d’applications dans des environnements isolés et le démarrage de ces environnements. Ils sont donc deux des éléments les plus importants de la plateforme de virtualisation Docker et de l’écosystème Docker. Découvrez la définition d’une image et d’un container Docker ainsi que leurs points communs et différences.

Compute Engine
La solution IaaS idéale pour gérer vos charges de travail
  • vCPU aux coûts avantageux et cœurs dédiés performants
  • Sans engagement pour plus de flexibilité
  • Assistance par des experts 24h/24 et 7j/7 incluse

Qu’est-ce qu’un conteneur Docker ?

Les conteneurs Docker sont des unités d’exécution isolées pour les applications et leurs dépendances. Sur ce point, ils sont très similaires aux machines virtuelles (en abrégé « VM »), mais il existe quelques différences importantes. La principale différence est que le degré d’isolation des conteneurs est légèrement inférieur à celui des VM, car aucun système d’exploitation supplémentaire ne doit être virtualisé. Au lieu de cela, les conteneurs partagent le système d’exploitation et le cœur du système hôte. Cela présente quelques avantages qui facilitent et accélèrent le développement d’applications, mais aussi quelques inconvénients.

La consommation de ressources est beaucoup plus faible pour les conteneurs que pour les machines virtuelles. Ils présentent donc de meilleures performances que les VM et peuvent être lancés plus rapidement. En outre, ils sont beaucoup plus portables que les VM, car seule l’application à exécuter et ses dépendances doivent être transportées. Le faible overhead des conteneurs Docker offre un autre avantage : plusieurs conteneurs peuvent être exécutés simultanément sur le même système.

Un inconvénient de ce degré d’isolation plus faible est que les conteneurs présentent une moins bonne sécurité que les VM. Comme tous les conteneurs ont accès au noyau du système d’exploitation, un conteneur « infecté » pourrait causer de sérieux dommages. Pour les applications qui nécessitent un niveau de sécurité plus élevé, il est donc préférable de recourir à une VM.

Conseil

Comme les conteneurs Docker contiennent déjà toutes les dépendances nécessaires, vous pouvez faciliter grandement l’exploitation d’applications Web pour vous et pour les utilisateurs finaux. Le serveur Cloud de IONOS peut même être configuré de manière à ce que Docker soit déjà préinstallé.

Qu’est-ce qu’une image Docker ?

Une image Docker est un modèle en lecture seule qui est utilisé par le moteur Docker pour créer un conteneur. Ainsi, les conteneurs Docker peuvent être considérés comme des instances exécutables d’images Docker. Ce modèle contient les dépendances de l’application à exécuter, l’environnement d’exécution nécessaire ainsi que le code d’application lui-même. En tant que modèle de conteneur, les images servent à créer des environnements d’exécution cohérents et reproductibles pour les applications.

Les images Docker elles-mêmes sont stockées sous forme de fichiers binaires, mais peuvent aussi être stockées sous forme lisible. Ces fichiers textuels sont appelés Dockerfiles et contiennent toutes les instructions nécessaires à la restauration de l’image. Tant les images Docker que les Dockerfiles sont portables et peuvent donc être transportés très facilement d’un système à l’autre. Ainsi, les images Docker peuvent être stockées dans des référentiels Docker comme Docker Hub et téléchargées à partir de là. Les instances de conteneurs en cours d’exécution peuvent également être enregistrées en tant que fichiers image à l’aide de la commande docker commit.

Conseil

Lors du développement d’applications, il est important de garder son espace de travail en ordre. Si vous travaillez depuis longtemps avec de nombreux conteneurs et images différents, vous en avez certainement quelques-uns sur votre ordinateur dont vous n’avez plus besoin. Nos articles vous montrent comment supprimer les conteneurs Docker et les images Docker superflus.

Comparatif Docker : image vs container

Les images et les conteneurs Docker sont en fait la même chose, mais sous deux formes différentes. Une image est un modèle en lecture seule pour un conteneur, qui contient tous les fichiers, dépendances et environnements d’exécution nécessaires à l’exécution d’une application, ainsi que l’application elle-même. Un conteneur est une instance en cours d’exécution, non protégée en écriture, de ce fichier image, tout comme un programme en cours d’exécution est une instance des fichiers de programme installés sur le disque dur.

Ainsi, une image est un fichier binaire stocké dans le système de fichiers de l’ordinateur hôte et un conteneur est un processus en cours d’exécution qui se trouve dans la mémoire vive du système. De même qu’une image Docker est utilisée pour créer un conteneur Docker, un conteneur en cours d’exécution peut également être enregistré sous forme d’image. Celle-ci peut à son tour être utilisée pour répliquer exactement le même conteneur.

Conseil

Le terme « Docker » englobe bien plus que les images, les conteneurs et le moteur Docker : au fil du temps, un véritable écosystème d’outils Docker s’est développé ! Il comprend de nombreux outils et plateformes utiles comme Docker-Hub, Swarm et Machine. Découvrez notre article sur le sujet pour en savoir plus.

Cet article vous a-t-il été utile ?
Page top