Bases du cloud et des conteneurs

Dans un conteneur démarré à partir d'une image, on modifie le fichier de configuration /etc/app.conf, qui fait partie de l'image. Quelle description de ce qui se passe avec le mécanisme de stockage habituel de Docker (comme overlay2) est correcte ?

  1. ALe fichier est copié dans la couche inscriptible du conteneur puis modifié ; l'image et les autres conteneurs ne sont donc pas affectés
  2. BLe fichier de la couche de l'image est modifié directement ; les autres conteneurs démarrés à partir de la même image voient donc aussi le nouveau contenu
  3. CLes couches d'une image sont en lecture seule : les fichiers contenus dans l'image ne peuvent donc pas être modifiés, et l'écriture échoue avec une erreur
Afficher la réponse et l'explication

Réponse : A. Le fichier est copié dans la couche inscriptible du conteneur puis modifié ; l'image et les autres conteneurs ne sont donc pas affectés

Le système de fichiers d'un conteneur présente sous la forme d'une seule arborescence les couches de l'image, en lecture seule, surmontées d'une couche inscriptible propre au conteneur. La première fois qu'un fichier d'une couche inférieure est modifié, il est copié dans la couche inscriptible, et c'est ensuite cette copie qui est utilisée (copie sur écriture). Les couches de l'image restent donc inchangées, et les autres conteneurs qui partagent la même image ne sont pas affectés. Comme la première copie d'un gros fichier prend du temps, les données écrites fréquemment, comme celles d'une base de données, sont placées dans un volume.

S'entraîner sur ce thème Retour au thème

Autres questions sur Bases du cloud et des conteneurs

  1. Pour décompresser une archive de 500 MB, data.tar.gz, une image a été construite avec le Dockerfile ci-dessus. Bien que l'archive ait été supprimée dans le même RUN après la décompression, l'image est restée plus grosse de la taille de l'archive. Quelle association entre la cause et le remède est la plus appropriée ?
  2. Cinq images empilent chacune leur propre couche de 30 MB sur la même image de base (120 MB). On néglige la compression des couches et la taille des métadonnées. Quel est l'espace disque utilisé par les images quand les cinq sont récupérées (pull) sur un même serveur ?
  3. Pour le Dockerfile ci-dessus, quelle association entre la commande exécutée lors de la construction de l'image avec docker build et la commande exécutée lors du démarrage d'un conteneur avec docker run est correcte ?
  4. Une image nommée pinger, construite à partir du Dockerfile ci-dessus, est démarrée par docker run pinger example.com. Quelle est la commande exécutée dans le conteneur ?
  5. Un conteneur est démarré par la commande ci-dessus à partir de l'image nginx, un serveur web qui écoute sur le port 80. L'adresse IP de l'hôte est 192.0.2.10, et il n'y a aucune restriction comme un pare-feu. Quelle est l'URL correcte pour joindre ce serveur web depuis un navigateur sur un autre PC du même réseau ?