Files
DEV_42_Docker/04_docker.md
2026-03-11 15:11:31 +01:00

190 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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 dimages
* Sécurité ?
* Docker Hub
* Exemple :
* ECS (AWS)
* Artifact Registry (Google Cloud)
---
# Lempilement 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)