C’est quoi la différence entre une machine virtuelle et un conteneur?

Pour voir la différence entre une machine virtuelle et un conteneur, il faut déjà voir ce que c’est.

VMware : Les machines virtuelles

VMware est un logiciel permettant de faire des machines virtuelles mais il faut savoir qu’il en existe d’autres… Virtual Box par exemple, en plus il est gratuit comparer à VMware.
Mais VMware est connu pour être meilleur.

Alors, je vais expliquer très simplement, même un débutant pourra comprendre ne vous inquiétez pas 😉

Un ordinateur c’est quoi?
Il y a la partie matérielle (carte mère, processeur, carte graphique, disque dur…) mais aussi la partie logiciel (Windows ou Linux par exemple).
Donc… en soi c’est pas impossible de mettre deux Windows différents sur le même matériel.
On pourrait donc dire qu’il y a deux ordinateurs au lieu d’un seul.

En gros une machine virtuelle c’est ça, c’est le fait d’avoir plusieurs systèmes d’exploitation sur le même ordinateur.
Dans cet exemple, il y a donc votre ordinateur avec Windows et une machine virtuelle avec Windows également.
A savoir que l’on peut en avoir autant que l’on veut et avec le système d’exploitation que l’on veut, dans les limites de votre ordinateur bien sûr…

Avantages :

Si vous avez téléchargé un virus sur une machine virtuelle par exemple, comme ce n’est pas sur votre vraie machine vous ne risquez rien en soi.

Vous pouvez avoir plusieurs OS (système d’exploitation) sur le même ordinateur principal.
Avoir Windows et Linux en même temps par exemple.
Il faut savoir que nous pouvons le faire simplement et manière optimisée grâce à WSL2 et donc sans passer par VMware.
« https://learn.microsoft.com/fr-fr/windows/wsl/install »

Inconvénients :

Un OS prend de la place, environ 23 Go de stockage pour Windows 10 Pro.
Donc faire plusieurs machines virtuelles peut vite devenir très gourmand en termes de places sur le disque dur.

Pour faire fonctionner une machine virtuelle, il faut lui allouer des ressources, c’est à dire lui dire ce qu’elle a le droit d’utiliser pour fonctionner.

Par exemple, votre tour possède 16Go de Ram, on peut lui dire qu’elle doit en utiliser 8Go.
Le problème avec ça, c’est que les ressources (ce que vous lui donnez) qu’elle va utilisée, votre ordinateur ne pourra donc pas l’utiliser tant que la machine virtuelle sera active.

Encore une fois, c’est donc gourmand en ressources. 
À chaque machine virtuelle que vous lancez, une partie des composants sont « bloquées » même si la machine virtuelle ne fait rien.

Docker : Les conteneurs

Docker est le plus connu et le plus utilisé !
C’est un peu plus compliqué à expliquer, mais ça va.

Un conteneur n’est pas comme une machine virtuelle, tout se passe sur votre ordinateur principal.
En fait, le principe d’un conteneur c’est de regrouper tout ce que vous avez besoin pour votre projet en un endroit, un conteneur.

Par exemple…
imaginons que vous voulez faire une application web Symfony 6.
Il vous faut donc Symfony, Composer, PHP 8 et Apache par exemple et autres en fonction de vos besoins…

Mais en même temps il vous faut PHP 6 par exemple pour un autre projet, c’est relou non ?
Si vous mettez PHP à jour vers la version 8, votre ancien projet ne fonctionnera probablement plus.

C’est là l’intérêt des conteneurs.
Lorsque vous faites un conteneur, cela vous fait un espace de travail.
Je vais vous imager ça pour que ce soit plus clair.

Avantages :

Vous pouvez avoir des projets avec des versions spécifiques de chaque logiciels.
Pour développer en local ou pour l’héberger sur un serveur, c’est top car il n’y a pas besoin de se prendre la tête pour la compatibilité.

A l’instar de la machine virtuelle, vous n’avez pas besoin de télécharger plusieurs fois l’OS, c’est donc mieux optimisé.

A la différence de la machine virtuelle, on ne doit pas allouer les ressources pour son bon fonctionnement.
Le conteneur est intelligent et utilise lui-même ce dont il a besoin.
C’est donc encore une fois plus optimiser.

Inconvénients :

Docker peut être compliqué à prendre en main au début.
Il faut savoir ce qu’est « une image », savoir faire des docker-compose…
Bref, cela peut prendre un peu de temps mais au final ça en vaut la peine.

Pour choisir entre machine virtuelle et conteneur, tout dépend de vos besoins.

2 commentaires pour “C’est quoi la différence entre une machine virtuelle et un conteneur?

  1. Bonjour et merci de ces explications claires, très claires.
    Je débute avec OMV 7 et j’ai déjà bien avancé mais je bute sur des points particuliers (nombreux); J’ai cherché sur les sites, les blogs etc et a chaque fois les explications impliquent des connaissances et pratiques que je n’ai pas.
    Est ce que vous auriez le temps et la patience pour m’aider.
    Cela pourrait également servir a de nombreux amateurs (débutants)qui je pense se fatiguent et arrêtent leur recherche faute de résultats probants.
    Pour info, j’ai monté mes disques et les dossiers partagés. J’accède a mes dossiers sur les machines Windows et Linux de mon réseau familiale.
    J’accede aussi par les smartTV mais les lectures sont lentes et les videos saccadée.
    Je ne sais pas de plus si tout cela est bien protégé.

    Merci de votre réponse (qui pourra etre negative et je le comprendrai)

    Georges

    1. Bonjour, je suis content que ça vous ai aidé 😉
      On peut dire que je débute aussi, je fais ça dans mon temps libre mais ça ne coûte rien d’essayer, n’hésitez pas à me poser des questions même si je n’aurai pas forcément les réponses.
      Pour l’accès avec Windows et Linux j’imagine que vous avez activer le protocole SMB, peut-être NFS aussi même si personnellement je ne l’utilise pas.
      Enfin vous avez sûrement installer l’extension « MiniDLNA » pour que ce soit sur la télé ?
      J’en ai parlé ici : https://blog.remipetit.fr/comment-relier-des-appareils-informatiques-avec-un-nas/
      C’est pour OMV6 mais il n’y a pas de grosses différences normalement.
      Si c’est lent, c’est peut-être la machine qui n’est pas très performante ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *