Docker & Docker Compose : Cheat Sheet des commandes essentielles
Guide de référence rapide des commandes Docker et Docker Compose pour développer efficacement au quotidien.
Publié le
15 novembre 2024
Lecture
8 min
Vues
1.5k
Auteur
Florian Courouge
Docker
Docker Compose
Conteneurs
DevOps
Cheat Sheet
Table des matières
📋 Vue d'ensemble rapide des sujets traités dans cet article
Cliquez sur les sections ci-dessous pour naviguer rapidement
Docker & Docker Compose : Cheat Sheet des commandes essentielles
Référence complète des commandes Docker et Docker Compose pour développer rapidement et efficacement. De la gestion des images au debugging, tout ce qu'il faut retenir pour être productif.
💡Docker - Commandes de base
Images
# Lister les images
docker images
docker image ls
# Télécharger une image
docker pull nginx:latest
docker pull mysql:8.0
# Construire une image
docker build -t mon-app:v1 .
docker build -t mon-app:v1 -f Dockerfile.prod .
# Supprimer une image
docker rmi nginx:latest
docker rmi $(docker images -q) # Toutes les images
Conteneurs - Lancement
# Lancer un conteneur
docker run nginx
docker run -d nginx # En arrière-plan
docker run -d -p 8080:80 nginx # Avec port mapping
docker run -d -p 8080:80 --name web nginx # Avec nom
# Mode interactif
docker run -it ubuntu bash
docker run -it --rm ubuntu bash # Supprime après arrêt
# Avec volumes
docker run -d -v /host/path:/container/path nginx
docker run -d -v vol-name:/container/path nginx
Conteneurs - Gestion
# Lister les conteneurs
docker ps # Actifs seulement
docker ps -a # Tous (actifs + arrêtés)
docker ps -q # IDs seulement
# Arrêter/démarrer
docker stop container-name
docker start container-name
docker restart container-name
# Supprimer
docker rm container-name
docker rm $(docker ps -aq) # Tous les conteneurs arrêtés
docker rm -f $(docker ps -aq) # Force tous les conteneurs
# Exécuter une commande
docker exec container-name ls -la
docker exec -it container-name bash # Shell interactif
docker exec -it container-name sh # Si pas bash
# Copier des fichiers
docker cp file.txt container-name:/path/
docker cp container-name:/path/file.txt ./
💡Nettoyage
Nettoyage rapide
# Nettoyage automatique
docker system prune # Images, conteneurs, réseaux inutilisés
docker system prune -a # + toutes les images non utilisées
docker system prune -a --volumes # + tous les volumes
# Nettoyage spécifique
docker container prune # Conteneurs arrêtés
docker image prune # Images pendantes
docker image prune -a # Images non utilisées
docker volume prune # Volumes non utilisés
Voir l'espace utilisé
docker system df # Résumé espace disque
docker system df -v # Détaillé
💡Docker Compose - Commandes essentielles
Lancement et arrêt
# Démarrer les services
docker-compose up
docker-compose up -d # En arrière-plan
docker-compose up --build # Force rebuild
docker-compose up service-name # Service spécifique
# Arrêter
docker-compose down # Arrête et supprime
docker-compose down -v # + supprime les volumes
docker-compose stop # Arrête seulement
# Scaler un service
docker-compose up -d --scale web=3
# Exécuter une commande
docker-compose exec service-name bash
docker-compose exec web ls -la
# Exécuter un service en one-shot
docker-compose run --rm web python manage.py migrate
💡One-liners utiles
Docker
# Arrêter tous les conteneurs
docker stop $(docker ps -q)
# Supprimer toutes les images non taguées
docker rmi $(docker images | grep "^<none>" | awk '{print $3}')
# Voir les ports ouverts
docker port container-name
# Suivre les logs de tous les conteneurs
docker logs -f $(docker ps -q)
# Entrer dans le dernier conteneur lancé
docker exec -it $(docker ps -ql) bash
# Taille des conteneurs
docker ps -s
Docker Compose
# Recréer complètement un environnement
docker-compose down -v && docker-compose up -d --build
# Voir les variables d'environnement
docker-compose config
# Logs de tous les services en temps réel
docker-compose logs -f --tail=0
# Redémarrer un service spécifique
docker-compose restart service-name && docker-compose logs -f service-name
# Conteneur qui ne démarre pas
docker logs container-name
docker inspect container-name
# Port déjà utilisé
docker ps | grep :8080 # Voir qui utilise le port
sudo lsof -i :8080 # Processus sur le port
docker-compose down && docker-compose up # Redémarrer clean
# Problème de permissions
docker exec -it container-name ls -la /path
docker exec -u root -it container-name chown user:user /path
# Problème réseau
docker network ls
docker network inspect bridge
docker exec container-name ping autre-container
Debugging containers
# Voir ce qui se passe dans un conteneur
docker exec -it container-name ps aux
docker exec -it container-name netstat -tlnp
docker exec -it container-name env
# Tester la connectivité
docker exec -it web ping db
docker exec -it web nc -zv db 5432 # Test port PostgreSQL
docker exec -it web curl -I http://redis:6379
💡Workflow de développement type
Setup projet
# 1. Cloner et setup
git clone repo
cd repo
cp .env.example .env
# 2. Construire et lancer
docker-compose up -d --build
# 3. Voir les logs
docker-compose logs -f
# 4. Migrations/setup initial
docker-compose exec web python manage.py migrate
docker-compose exec web python manage.py collectstatic
Développement quotidien
# Démarrer la journée
docker-compose up -d
# Voir ce qui se passe
docker-compose ps
docker-compose logs -f web
# Tests
docker-compose exec web pytest
docker-compose exec web python manage.py test
# Fin de journée
docker-compose down
Debugging session
# 1. Problème détecté
docker-compose logs service-name
# 2. Inspecter le conteneur
docker-compose exec service-name bash
# 3. Rebuilder si nécessaire
docker-compose down
docker-compose up -d --build service-name
# 4. Monitoring
docker-compose logs -f service-name
# Base de données
DATABASE_URL=postgresql://user:pass@localhost:5432/mydb
POSTGRES_PASSWORD=secret123
# Redis
REDIS_URL=redis://localhost:6379/0
# Application
DEBUG=True
SECRET_KEY=your-secret-key
ALLOWED_HOSTS=localhost,127.0.0.1
💡Aliases utiles à ajouter dans ~/.bashrc
# Docker aliases
alias d='docker'
alias dc='docker-compose'
alias dps='docker ps'
alias dpsa='docker ps -a'
alias di='docker images'
# Docker Compose aliases
alias dcu='docker-compose up -d'
alias dcd='docker-compose down'
alias dcl='docker-compose logs -f'
alias dcb='docker-compose up -d --build'
alias dce='docker-compose exec'
# Nettoyage
alias dclean='docker system prune -a'
alias dstop='docker stop $(docker ps -q)'
💡Conclusion
Ce cheat sheet couvre l'essentiel des commandes Docker et Docker Compose pour être efficace au quotidien. Les one-liners et workflows proposés permettent de gagner un temps précieux en développement.
Points clés à retenir :
•Toujours utiliser .dockerignore pour exclure node_modules, .git, etc.
•Préfixer les noms d'images avec votre registry : registry.com/user/app:tag
•Utiliser --rm pour les conteneurs temporaires
•docker-compose down -v supprime aussi les volumes (attention aux données !)
•docker system prune -a libère beaucoup d'espace mais supprime toutes les images non utilisées
Avec ces commandes en tête, vous serez paré pour développer efficacement avec Docker et résoudre rapidement les problèmes courants.
À propos de l'auteur
Florian Courouge - Expert DevOps et Apache Kafka avec plus de 5 ans d'expérience dans l'architecture de systèmes distribués et l'automatisation d'infrastructures.
Cet article vous a été utile ?
Découvrez mes autres articles techniques ou contactez-moi pour discuter de vos projets DevOps et Kafka.