🐳 Docker - Guide pratique

Docker permet de créer, déployer et exécuter des applications dans des conteneurs. Les conteneurs sont des environnements légers, portables, isolés et reproductibles qui facilitent le déploiement d'applications sur différentes plateformes.

📑 Sommaire

📌 Présentation

Docker permet de créer, déployer et exécuter des applications dans des conteneurs. Les conteneurs sont des environnements légers, portables, isolés et reproductibles.

Contrairement aux machines virtuelles, les conteneurs Docker :

1. 🧰 Installation

Docker est disponible sur les principales plateformes :

PlateformeCommande
Windows (Chocolatey)
choco install docker-desktop -y
Ubuntu
sudo apt update && sudo apt install docker.io
Mac (Homebrew)
brew install --cask docker

Pour vérifier l'installation :

docker --version
docker info

2. 📦 Gestion des images

Les images Docker sont les modèles qui servent à créer des conteneurs :

docker images                # Liste les images locales
docker pull nginx           # Télécharge l'image nginx
docker pull python:3.9      # Télécharge une version spécifique de Python
docker rmi image_id         # Supprime une image locale
docker image prune          # Supprime toutes les images inutilisées

3. 🚀 Gestion des conteneurs

Commandes essentielles pour gérer les conteneurs Docker :

docker run -d --name web nginx     # Lance un conteneur en arrière-plan
docker ps                         # Liste les conteneurs en cours d'exécution
docker ps -a                      # Liste tous les conteneurs
docker stop web                   # Stoppe le conteneur
docker start web                  # Redémarre le conteneur
docker rm web                     # Supprime le conteneur
docker logs -f web                # Affiche les logs du conteneur en temps réel
docker container prune            # Supprime tous les conteneurs arrêtés

Options courantes pour la commande docker run :

docker run -d                    # Mode détaché (en arrière-plan)
docker run -p 8080:80            # Mappage de port (hôte:conteneur)
docker run -e VAR=valeur         # Variables d'environnement
docker run --restart=always      # Redémarrage automatique

4. 📁 Volumes et persistance

Les volumes permettent de conserver les données même après suppression du conteneur :

docker volume create monvolume

docker run -d --name app \
  -v monvolume:/app/data \
  myapp

Types de montages :

# Montage d'un répertoire de l'hôte
docker run -v /chemin/hote:/chemin/conteneur nginx

5. 🛠️ Réseaux personnalisés

Docker permet de créer des réseaux isolés pour vos conteneurs :

docker network create monreseau

docker run -d --name web1 --network monreseau nginx
docker run -d --name web2 --network monreseau nginx

Les conteneurs sur le même réseau peuvent communiquer par leur nom :

docker exec web2 ping web1

Commandes pour la gestion des réseaux :

docker network ls              # Liste les réseaux
docker network inspect monreseau  # Détails sur un réseau
docker network rm monreseau       # Supprime un réseau

6. 📜 Dockerfile de base

Un Dockerfile permet de créer vos propres images Docker :

# Exemple minimal de Dockerfile
FROM python:3.10-slim
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "app.py"]

Instructions courantes dans un Dockerfile :

Construction de l'image :

docker build -t monimage:1.0 .

7. 🧪 Commandes avancées

Commandes pour des utilisations plus avancées :

docker exec -it web bash             # Accès shell dans un conteneur
docker build -t monimage .          # Construire une image locale
docker-compose up -d                # Lancer via fichier docker-compose.yml
docker stats                        # Surveiller l'utilisation des ressources
docker inspect conteneur_id         # Détails sur un conteneur
docker cp fichier.txt web:/app/     # Copier des fichiers vers un conteneur

🎓 Ressources

Pour approfondir vos connaissances sur Docker :

🏠 Retour au sommaire général