QCM : Commandes Docker de base (14 questions)

Questions et réponses du QCM

1. Une personne lance une image qui n’est pas présente sur sa machine. Quelle séquence Docker s’ensuit ?

Récupère l’image, crée le conteneur, ajoute une couche inscriptible et le connecte au réseau par défaut
Crée le conteneur, récupère ensuite l’image, ajoute une couche inscriptible et le connecte au réseau par défaut
Récupère l’image, crée le conteneur et le connecte au réseau par défaut sans couche inscriptible
Récupère l’image, crée le conteneur et ajoute une couche inscriptible sans le connecter au réseau par défaut

Récupère l’image, crée le conteneur, ajoute une couche inscriptible et le connecte au réseau par défaut

Explication

Si l’image manque localement, Docker la récupère depuis le registre configuré, puis crée le conteneur avec un système de fichiers en lecture-écriture et une interface reliée au réseau par défaut. L’ordre inversé place la création avant le téléchargement, l’absence de couche inscriptible confond image et conteneur, et l’absence de réseau omet la connexion prévue.

2. Dans un conteneur Ubuntu lancé avec sa commande par défaut, que se passe-t-il lorsque l’utilisateur saisit `exit` dans le terminal ?

Un processus secondaire se termine, mais Bash reste actif
Bash se termine et le conteneur prend fin
Bash reste actif et le conteneur est mis en pause
Bash se termine et le conteneur reste actif

Bash se termine et le conteneur prend fin

Explication

Dans l’image Ubuntu, bash est la commande par défaut et le conteneur reste actif tant que bash fonctionne ; `exit` met fin à bash et donc au conteneur. Le conteneur ne continue pas après la fin de son processus principal, et `exit` n’est pas une commande de mise en pause.

3. Une machine ne possède pas l’image NGINX et l’utilisateur lance `docker run nginx`. Quel comportement Docker est attendu ?

Docker refuse de lancer le conteneur tant que `docker pull nginx` n’a pas été exécutée
Docker envoie l’image NGINX locale vers Docker Hub puis lance le conteneur
Docker télécharge implicitement NGINX depuis Docker Hub puis lance le conteneur
Docker télécharge implicitement NGINX depuis un registre choisi au hasard puis lance le conteneur

Docker télécharge implicitement NGINX depuis Docker Hub puis lance le conteneur

Explication

`docker run` déclenche implicitement le téléchargement si l’image demandée est absente localement ; le registre par défaut est Docker Hub. L’idée d’un téléchargement manuel obligatoire oublie ce comportement, l’envoi vers le registre inverse le sens de l’opération et le choix aléatoire du registre ne correspond pas au registre configuré.

4. Un utilisateur veut lancer un conteneur en arrière-plan afin de récupérer immédiatement son identifiant. Quelle commande répond à ce besoin ?

`docker run nginx`
`docker run -d nginx`
`docker run --rm nginx`
`docker run nginx` puis Ctrl + C

`docker run -d nginx`

Explication

L’option `-d` lance le conteneur en arrière-plan et affiche son identifiant. Sans cette option, le processus est attaché au terminal ; Ctrl + C l’interrompt, tandis que `--rm` règle la suppression après l’arrêt et non le mode d’exécution.

5. Un conteneur est arrêté et un autre est en cours d’exécution. Quelle commande affiche les deux ?

`docker container stop`
`docker container ls`
`docker container ls -a`
`docker container prune`

`docker container ls -a`

Explication

`docker container ls -a` inclut les conteneurs quel que soit leur statut. `docker container ls` ne liste que ceux en cours d’exécution, `stop` sert à arrêter un conteneur et `prune` supprime les conteneurs arrêtés après confirmation.

6. Un conteneur fonctionne encore et l’utilisateur veut le supprimer avec `docker container rm`. Que doit-il faire pour que la suppression soit possible ?

Le redémarrer d’abord ou utiliser `--detach`
L’arrêter d’abord ou utiliser `--force`
Le lister d’abord ou utiliser `--rm`
Le mettre en arrière-plan ou utiliser `--all`

L’arrêter d’abord ou utiliser `--force`

Explication

Un conteneur en cours d’exécution ne peut pas être supprimé par `docker container rm` sans l’arrêter ou employer `--force`. Le mode arrière-plan et `--all` ne satisfont pas cette condition, pas plus que l’inventaire ou les options de lancement indiquées.

7. Le conteneur `web-server` est déjà démarré et Bash y est installé. Quelle commande ouvre une session Bash interactive dans ce conteneur ?

`docker exec -it web-server bash`
`docker start -it web-server bash`
`docker run -it web-server bash`
`docker exec -d web-server bash`

`docker exec -it web-server bash`

Explication

`docker exec -it` lance une commande interactive dans un conteneur déjà démarré. `docker run` crée un nouveau conteneur, `docker start` redémarre un conteneur existant et `-d` demande une exécution détachée.

8. Un conteneur NGINX existant doit rendre son port 80 accessible sur le port 8888 de l’hôte. Quelle démarche permet d’appliquer ce nouveau mapping ?

Relancer le conteneur avec `-e 8888:80`
Renommer le conteneur avec `--name 8888:80`
Recréer le conteneur avec `-p 8888:80`
Redémarrer le conteneur avec `-p 80:8888`

Recréer le conteneur avec `-p 8888:80`

Explication

Le mapping des ports doit être défini à la création : `-p 8888:80` relie le port 8888 de l’hôte au port 80 du conteneur. `docker start` redémarre le conteneur sans modifier son mapping, et les options de nom ou d’environnement ne configurent pas les ports.

9. Pour réduire le niveau d’information des journaux NGINX en transmettant sa variable de configuration au démarrage, quelle commande convient ?

`docker run -p NGINX_ENTRYPOINT_QUIET_LOGS=1 nginx`
`docker run --name NGINX_ENTRYPOINT_QUIET_LOGS=1 nginx`
`docker exec -e NGINX_ENTRYPOINT_QUIET_LOGS=1 nginx`
`docker run -e NGINX_ENTRYPOINT_QUIET_LOGS=1 nginx`

`docker run -e NGINX_ENTRYPOINT_QUIET_LOGS=1 nginx`

Explication

L’option `-e` transmet une variable d’environnement au conteneur, et `NGINX_ENTRYPOINT_QUIET_LOGS=1` contrôle le niveau d’information des journaux NGINX. `--name` sert à nommer le conteneur, tandis que `-p` configure un mapping de ports.

10. Une équipe veut transformer l’état modifié d’un conteneur en image, mais souhaite éviter une méthode difficile à auditer qui risque d’inclure des fichiers créés au lancement. Quelle méthode correspond à cette approche déconseillée ?

Créer l’image avec `docker commit`
Décrire les changements dans un Dockerfile
Inspecter les fichiers avec `docker diff`
Exécuter une commande dans le conteneur avec `docker exec`

Créer l’image avec `docker commit`

Explication

`docker commit` crée une image à partir de l’état modifié d’un conteneur, mais cette méthode est déconseillée car les changements sont difficiles à évaluer et des fichiers issus du lancement peuvent être inclus involontairement. `docker diff` inspecte les fichiers, tandis qu’un Dockerfile décrit les changements par du code.

11. Une équipe veut consigner sous forme de code les changements à apporter à une image de base afin de construire une image personnalisée. Quel outil doit-elle utiliser ?

La commande `docker start`
La commande `docker diff`
La commande `docker commit`
Un Dockerfile

Un Dockerfile

Explication

Un Dockerfile définit par du code les changements à apporter à une image de base. `docker diff` affiche les modifications de fichiers d’un conteneur, `docker commit` crée une image depuis son état et `docker start` redémarre un conteneur.

12. Une équipe veut afficher les identifiants de tous les conteneurs, y compris ceux qui sont arrêtés. Quelle commande répond à ce besoin ?

docker container ls -a
docker container ls -q
docker container ls -aq
docker container ls

docker container ls -aq

Explication

L’option `-a` inclut les conteneurs de tous statuts et `-q` limite l’affichage à leurs identifiants. `-q` seul conserve la liste habituelle des conteneurs actifs, tandis que `-a` seul affiche aussi des informations autres que les identifiants.

13. Un administrateur veut arrêter tous les conteneurs, puis supprimer les conteneurs arrêtés et les images inutilisées. Quelle séquence de commandes convient ?

`docker container rm $(docker container ls -aq)`, puis `docker container prune` et `docker image prune`
`docker container stop $(docker container ls -aq)`, puis `docker container prune` et `docker image prune`
`docker container stop $(docker container ls -aq)`, puis `docker container prune`
`docker container prune`, puis `docker image prune` et `docker container stop $(docker container ls -aq)`

`docker container stop $(docker container ls -aq)`, puis `docker container prune` et `docker image prune`

Explication

La liste obtenue avec `docker container ls -aq` fournit les identifiants à arrêter; les commandes `docker container prune` et `docker image prune` nettoient ensuite les conteneurs arrêtés et les images inutilisées. `rm` supprime au lieu d’arrêter, omettre `image prune` laisse les images inutilisées, et lancer les nettoyages avant l’arrêt inverse l’ordre prévu.

14. Un conteneur modifie un fichier, puis son processus principal se termine. Avant la suppression du conteneur, que devient-il ?

Il est supprimé et perd les modifications de son système de fichiers.
Il s’arrête et conserve les modifications de son système de fichiers.
Il s’arrête et réinitialise son système de fichiers à l’état de l’image.
Il reste actif et conserve les modifications de son système de fichiers.

Il s’arrête et conserve les modifications de son système de fichiers.

Explication

Le conteneur suit le cycle de vie de son processus principal : sa fin arrête le conteneur, mais les modifications persistent jusqu’à sa suppression. La suppression anticipée confond arrêt et suppression, la poursuite de l’activité ignore la fin du processus principal, et la réinitialisation confond arrêt et perte des changements.

Révisez avec les flashcards

Mémorisez les réponses avec 36 flashcards sur Commandes Docker de base.

Que fait Docker si l’image demandée est absente localement ?

Il la récupère depuis le registre configuré.

Quel système de fichiers Docker attribue-t-il au conteneur créé ?

Un système de fichiers en lecture et écriture.

Quelle commande est exécutée par défaut dans l’image Ubuntu ?

bash.

Voir les flashcards →

Approfondir avec la fiche

Consultez la fiche de révision complète sur Commandes Docker de base.

Voir la fiche →

Cours similaires

Crée tes propres QCM

Importe ton cours et l'IA génère des QCM avec corrections en 30 secondes.

Générateur de QCM