Introduction
Les conteneurs encapsulent un processus avec sa propre vue du système de fichiers et ses paramètres d'exécution. Un moteur de conteneur tel que Docker permet de construire des images, d'exécuter des conteneurs à partir de ces images, d'attacher du stockage, d'afficher des journaux, d'exécuter des commandes à l'intérieur d'un conteneur en cours d'exécution et de supprimer les conteneurs lorsqu'ils ne sont plus nécessaires.
Dans ce laboratoire, vous utiliserez le moteur Docker déjà disponible dans l'instance LabEx. Pour éviter les téléchargements d'images publiques, le laboratoire construit une petite image d'entraînement à partir d'une image de base locale mise en cache. Vous inspecterez le moteur, construirez une image, exécuterez un conteneur nommé avec un montage lié, examinerez les journaux et les fichiers générés, exécuterez une commande à l'intérieur du conteneur et nettoierez le conteneur en cours d'exécution.
Inspecter le moteur de conteneur
Dans cette étape, vous confirmerez que Docker est disponible et vous inspecterez les images locales. Un flux de travail de conteneur commence par la connaissance du moteur que vous utilisez et des images déjà présentes. Ce laboratoire évite les téléchargements publics en utilisant une image de base mise en cache.
Accédez au répertoire du projet.
cd /home/labex/project
Vérifiez la version de Docker.
docker --version
Listez les images locales.
docker image ls
Vous devriez voir gcr.io/k8s-minikube/kicbase:v0.0.37, que le laboratoire utilise comme base de construction locale.
Examiner et construire une image locale
Dans cette étape, vous inspecterez le Dockerfile préparé et construirez une image locale. Une image est un modèle réutilisable de système de fichiers et de métadonnées. Un conteneur est une instance en cours d'exécution créée à partir d'une image.
Affichez le Dockerfile. La ligne ENTRYPOINT est importante car l'image de base mise en cache possède son propre point d'entrée par défaut. Ce laboratoire définit un nouveau point d'entrée afin que le conteneur démarre directement le script d'entraînement.
cat Dockerfile
Construisez l'image et étiquetez-la (tag) en tant que lfcs-container-demo:1.0. L'option -t attribue un nom et une étiquette, et le . final indique à Docker d'utiliser le répertoire actuel comme contexte de construction.
docker build -t lfcs-container-demo:1.0 .
Vérifiez l'image une fois la construction réussie.
docker image ls lfcs-container-demo:1.0
Exécuter un conteneur nommé
Dans cette étape, vous exécuterez l'image en tant que conteneur détaché. "Détaché" signifie que le conteneur s'exécute en arrière-plan. Le conteneur est nommé lfcs-demo, et un montage lié (bind mount) connecte /home/labex/project/container-data sur l'hôte à /data à l'intérieur du conteneur.
Exécutez le conteneur.
docker run -d --name lfcs-demo -v /home/labex/project/container-data:/data lfcs-container-demo:1.0
Affichez l'ID du conteneur.
docker ps -q --filter name=lfcs-demo
Listez les conteneurs en cours d'exécution et recherchez lfcs-demo.
docker ps --filter name=lfcs-demo
Inspecter les journaux et exécuter une commande
Dans cette étape, vous inspecterez le conteneur en cours d'exécution. Les journaux montrent ce que le processus conteneurisé affiche. Un montage lié vous permet de vérifier que le conteneur a bien écrit des données sur l'hôte. docker exec exécute une commande à l'intérieur du conteneur en cours d'exécution.
Laissez au conteneur le temps d'écrire les journaux.
sleep 3
Lisez les journaux récents du conteneur.
docker logs --tail 5 lfcs-demo
Vérifiez le fichier écrit via le montage lié.
tail -n 5 container-data/container-output.log
Exécutez une commande à l'intérieur du conteneur pour confirmer que les données montées sont visibles depuis l'intérieur.
docker exec lfcs-demo sh -c 'test -f /data/container-output.log && echo container-data-visible'
Arrêter et supprimer le conteneur
Dans cette étape, vous nettoierez le conteneur en cours d'exécution. Arrêter un conteneur met fin à son processus. Supprimer un conteneur arrêté supprime l'objet conteneur, mais ne supprime pas l'image que vous avez construite.
Arrêtez le conteneur.
docker stop lfcs-demo
Supprimez le conteneur arrêté.
docker rm lfcs-demo
Vérifiez le nettoyage. docker ps -a liste tous les conteneurs, y compris ceux qui sont arrêtés. Après la suppression, lfcs-demo ne devrait plus apparaître.
docker ps -a --filter name=lfcs-demo
Résumé
Vous avez pratiqué un flux de travail Docker de base complet : inspecter le moteur, utiliser une image de base locale mise en cache, construire une image étiquetée, exécuter un conteneur détaché nommé avec un montage lié, inspecter les journaux, exécuter une commande à l'intérieur du conteneur, puis arrêter et supprimer le conteneur. Ce sont les opérations fondamentales sur les conteneurs à maîtriser avant d'aborder des sujets plus avancés comme la configuration du moteur ou l'orchestration.



