--- marp: true theme: default paginate: true backgroundColor: #fff footer: 'Conteneurisation - Partie 1 - 2025' style: | section { font-family: 'Arial', sans-serif; } h1 { color: #2496ed; } h2 { color: #384c54; } --- # 3. La conteneurisation ## Cas de docker --- # Conteneur * Environnement isolé * Système hôte * Fonctions de configuration * Dépend de l'hôte/kernel --- # Les types de conteneurs * **System :** * simule une **séquence de boot** complète avec un **init process** ainsi que **plusieurs processus** (LXC, OpenVZ). * **Process :** * un conteneur **exécute un ou plusieurs processus** directement, en fonction de l'application conteneurisée (Docker, Rkt). --- # Notion importantes * Cgroups (Control Groups) * Namespaces ![bg right:65% 100%](assets/cgroups_namesspaces.png) --- # Les images * Point de départ * Archives / Snapshot * On ne refait pas la roue ![bg right:60% 100%](./assets/images.png) --- # Le registre * Distributeur d’images * Sécurité ? * Docker Hub * Exemple : * ECS (AWS) * Artifact Registry (Google Cloud) --- # L’empilement des couches (Layers) * Structure en couche * Partage des couches ![alt text](./assets/layers.png) --- # Cycle de Vie des Conteneurs Docker - Introduction au cycle de vie des conteneurs - États possibles et transitions - Commandes de gestion ![bg right:48% 100%](./assets/lifecycle.png) --- # États des Conteneurs Docker **Created** - Conteneur créé mais pas encore démarré - `docker create` **Running** - Conteneur en cours d'exécution - `docker run`, `docker start` - Processus actifs à l'intérieur --- # États des Conteneurs Docker **Paused** - Conteneur en pause (processus gelés) - `docker pause`, `docker unpause` **Stopped** - Conteneur arrêté (processus terminés) - `docker stop`, `docker kill` --- # Commandes Principales de Gestion **Création et Démarrage** ```bash docker run # Crée et démarre un conteneur docker start # Démarre un conteneur existant ``` **Gestion des États** ```bash docker pause # Met en pause un conteneur docker unpause # Reprend l'exécution docker stop # Arrête proprement (SIGTERM) docker kill # Arrête immédiatement (SIGKILL) ``` --- # Commandes Principales de Gestion **Suppression** ```bash docker rm # Supprime un conteneur arrêté docker rm -f # Force la suppression d'un conteneur ``` --- # Inspection et Débug **Commandes utiles** ```bash docker ps # Liste les conteneurs en cours d'exécution docker ps -a # Liste tous les conteneurs docker logs # Affiche les logs du conteneur docker exec # Exécute une commande dans un conteneur docker stats # Affiche les statistiques d'utilisation ``` **Points importants** - Un conteneur peut être redémarré (`docker restart`) - Les données sont persistantes entre les redémarrages - Les volumes permettent de persister les données même après suppression --- # TP1 --- # Le stockage * AUFS * DeviceMapper * OverlayFS * Plugins ![bg right:65% 100%](./assets/stockage.png) --- # Les volumes * Persistance des données * Indépendance vis à vis des conteneurs/layers * Deux types de volume: * Conteneur : data conteneur * Hôte : dossier ![bg right:60% 100%](./assets/volume.png)