Conteneur contre machine virtuelle

Ce que chacun embarque et partage, la comparaison sur sept critères (noyau, isolement, poids, démarrage, densité, portabilité, système invité) et les contraintes qui font choisir l'un ou l'autre.

  • 23 cartes
  • 6 thèmes
  • Gratuit

Le programme, thème par thème

Le poids de chaque thème suit celui que lui donne l'examen.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. Sur la frise
  5. Mises en situation
  6. Comprendre

Quelques cartes du deck

  • Conteneur : de quoi s'agit-il ?

    Voir la réponse

    Processus (ou groupe de processus) isolé de ses voisins, qui voit son propre système de fichiers, ses propres processus et son propre réseau, tout en s'exécutant sur le noyau de l'hôte.

    Il n'embarque ni noyau ni matériel simulé, seulement l'application et ses bibliothèques : c'est ce qui le rend léger.

  • Un développeur lance docker run alpine uname -r sur son hôte Linux 6.8 et obtient 6.8.0-45-generic. Pourquoi ?

    • Le conteneur n'a pas de noyau : il utilise celui de l'hôte
    • L'image alpine embarque un noyau dont la version est copiée de l'hôte au lancement
    • Docker émule le noyau de l'hôte dans une petite machine virtuelle cachée sur Linux
    • La commande uname est interceptée par Docker, qui répond avec la version de l'hôte
    Voir la réponse

    Le conteneur n'a pas de noyau : il utilise celui de l'hôte

    Un conteneur Linux est un processus de l'hôte, isolé par des espaces de noms. L'image alpine ne contient que des fichiers (outils, bibliothèques), jamais de noyau.

  • Dans un conteneur, la commande uname -r affiche la même version que sur l'hôte, parce que le conteneur utilise ….

    Voir la réponse

    Dans un conteneur, la commande uname -r affiche la même version que sur l'hôte, parce que le conteneur utilise le noyau de l'hôte.

    Dans une machine virtuelle, uname -r affiche la version du noyau invité, qui peut être très différente de celle de l'hôte.

  • Machine virtuelle : de quoi s'agit-il ?

    Voir la réponse

    Ordinateur simulé par un hyperviseur, avec son processeur, sa mémoire et ses disques virtuels, sur lequel on installe un système d'exploitation complet.

    Elle embarque son propre noyau : on peut y faire tourner un autre système que celui de l'hôte, au prix d'un démarrage et d'un poids plus lourds.

  • Un hébergeur fait tourner sur les mêmes hôtes le code de clients qui ne se font pas confiance, dans des conteneurs. Quel est le risque principal, et quelle est la parade ?

    • Une faille du noyau partagé permettrait de sortir d'un conteneur ; une machine virtuelle par client y répond
    • Les conteneurs d'un même hôte se disputent le même port ; on répond en changeant de port
    • Les conteneurs sont trop lents à démarrer pour des clients ; on répond avec un hôte plus gros
    • Les images de conteneurs se mélangent entre clients ; on répond en les chiffrant
    Voir la réponse

    Une faille du noyau partagé permettrait de sortir d'un conteneur ; une machine virtuelle par client y répond

    Tous les conteneurs appellent le même noyau : une vulnérabilité d'élévation de privilèges dans ce noyau les met tous en danger. Une machine virtuelle par client met un noyau, et un hyperviseur, entre eux.