### 🚀 Configuration Initiale
#### Vérifier la version de Docker
```bash
docker --version
```
Affiche la version installée de Docker sur votre système. Utile pour vérifier que Docker est bien installé.
#### Lancer le service Docker
```bash
sudo systemctl start docker
```
Démarre le service Docker sur votre machine (nécessaire sous Linux).
#### Activer Docker au démarrage
```bash
sudo systemctl enable docker
```
Configure Docker pour se lancer automatiquement au démarrage du système.
#### Vérifier si Docker fonctionne
```bash
docker info
```
Affiche des informations détaillées sur l’installation, y compris l’état du daemon et les paramètres de configuration.
---
### 📦 Gestion des Conteneurs
#### Lister les conteneurs actifs
```bash
docker ps
```
Affiche la liste des conteneurs actuellement en cours d'exécution.
#### Lister tous les conteneurs (y compris stoppés)
```bash
docker ps -a
```
Affiche tous les conteneurs, y compris ceux qui sont arrêtés.
#### Lancer un conteneur
```bash
docker run <image>
```
Crée et exécute un conteneur basé sur l’image spécifiée.
#### Lancer un conteneur en arrière-plan (détaché)
```bash
docker run -d <image>
```
Exécute un conteneur en arrière-plan et renvoie son ID.
#### Lancer un conteneur interactif
```bash
docker run -it <image> /bin/bash
```
Lance un conteneur en mode interactif et ouvre un terminal (`bash` dans cet exemple).
#### ArrĂŞter un conteneur
```bash
docker stop <id_containeur>
```
Arrête un conteneur en cours d'exécution.
#### Redémarrer un conteneur
```bash
docker restart <id_containeur>
```
ArrĂŞte et relance un conteneur.
#### Supprimer un conteneur
```bash
docker rm <id_containeur>
```
Supprime un conteneur arrêté. Il faut d’abord l’arrêter si nécessaire.
#### Supprimer tous les conteneurs arrêtés
```bash
docker container prune
```
Nettoie et supprime tous les conteneurs qui ne sont pas en cours d'exécution.
---
### 🏗 Gestion des Images
#### Lister les images disponibles
```bash
docker images
```
Affiche la liste des images Docker présentes sur votre machine.
#### Télécharger une image
```bash
docker pull <image>
```
Récupère l’image spécifiée depuis Docker Hub ou un registre privé.
#### Supprimer une image
```bash
docker rmi <image_id>
```
Supprime l’image spécifiée.
#### Supprimer toutes les images inutilisées
```bash
docker image prune
```
Supprime toutes les images qui ne sont plus utilisées par des conteneurs.
---
### 🔄 Gestion des Volumes
#### Lister les volumes
```bash
docker volume ls
```
Affiche tous les volumes Docker disponibles.
#### Créer un volume
```bash
docker volume create <nom_volume>
```
Crée un volume qui pourra être utilisé par les conteneurs.
#### Supprimer un volume
```bash
docker volume rm <nom_volume>
```
Supprime un volume inutilisé.
#### Supprimer tous les volumes non utilisés
```bash
docker volume prune
```
Nettoie et supprime tous les volumes qui ne sont plus utilisés.
---
### 🏗 Gestion des Réseaux
#### Lister les réseaux Docker
```bash
docker network ls
```
Affiche tous les réseaux disponibles sur Docker.
#### Créer un réseau
```bash
docker network create <nom_reseau>
```
Crée un réseau personnalisé pour connecter des conteneurs.
#### Ajouter un conteneur à un réseau
```bash
docker network connect <nom_reseau> <id_conteneur>
```
Ajoute un conteneur spécifique à un réseau Docker.
#### Supprimer un réseau
```bash
docker network rm <nom_reseau>
```
Supprime un réseau qui n’est plus utilisé.
---
### 🔍 Inspection et Debug
#### Voir les logs d'un conteneur
```bash
docker logs <id_containeur>
```
Affiche les logs générés par le conteneur en cours d'exécution.
#### Suivre les logs en temps réel
```bash
docker logs -f <id_containeur>
```
Affiche les logs en continu (`-f` pour _follow_).
#### Inspecter un conteneur
```bash
docker inspect <id_containeur>
```
Renvoie toutes les informations détaillées sur un conteneur (réseau, montage de volumes, environnement...).
#### Voir l'utilisation des ressources par les conteneurs
```bash
docker stats
```
Affiche en temps réel l’utilisation CPU/mémoire/disque/réseau de chaque conteneur actif.
---
### ⚙ Exécuter des Commandes dans un Conteneur
#### Exécuter une commande dans un conteneur en cours d'exécution
```bash
docker exec -it <id_containeur> /bin/bash
```
Ouvre un shell interactif dans le conteneur (utile pour le débogage).
#### Copier un fichier de l’hôte vers un conteneur
```bash
docker cp <fichier_local> <id_containeur>:/chemin/destination
```
Copie un fichier depuis l’hôte vers un conteneur.
#### Copier un fichier d’un conteneur vers l’hôte
```bash
docker cp <id_containeur>:/chemin/source <destination_local>
```
Extrait un fichier du conteneur vers la machine hĂ´te.
---
### 📜 Gestion des Dockerfiles et Builds
#### Construire une image depuis un Dockerfile
```bash
docker build -t <nom_image> .
```
Construit une nouvelle image Docker en utilisant un `Dockerfile` dans le dossier courant.
#### Lancer un conteneur depuis une image locale
```bash
docker run <nom_image>
```
Crée et exécute un conteneur basé sur une image que vous avez construite.
---
### đź› Nettoyage et Maintenance
#### Supprimer tous les conteneurs arrêtés
```bash
docker container prune
```
Libère de l’espace en supprimant tous les conteneurs qui ne sont plus en cours d’exécution.
#### Supprimer toutes les images inutilisées
```bash
docker image prune
```
Efface les images qui ne sont plus utilisées par des conteneurs.
#### Supprimer tous les volumes inutilisés
```bash
docker volume prune
```
Nettoie les volumes qui ne sont plus attachés à des conteneurs.
#### Supprimer tous les réseaux inutilisés
```bash
docker network prune
```
Efface les réseaux Docker qui ne sont plus utilisés.
---
### 🏗 Docker Compose (pour les configurations multi-conteneurs)
#### Lancer un projet Docker Compose
```bash
docker-compose up -d
```
Démarre les services définis dans `docker-compose.yml` en mode détaché (`-d`).
#### ArrĂŞter un projet Docker Compose
```bash
docker-compose down
```
Arrête et supprime les conteneurs définis dans `docker-compose.yml`.
#### Vérifier les logs des services
```bash
docker-compose logs -f
```
Affiche en temps réel les logs de tous les services définis dans `docker-compose.yml`.