Commandes Docker complètes et workflows pour la conteneurisation sur toutes les plateformes.
Commandes de base
| Commande | Description |
|---|
docker --version | Afficher la version de Docker |
docker info | Afficher les informations système |
docker help | Afficher l’aide pour les commandes Docker |
docker images | Lister toutes les images |
docker ps | Lister les conteneurs en cours d’exécution |
docker ps -a | Lister tous les conteneurs (en cours d’exécution et arrêtés) |
docker pull <image> | Extraire une image du registry |
docker run <image> | Exécuter un conteneur à partir d’une image |
docker stop <container> | Arrêter un conteneur en cours d’exécution |
docker start <container> | Démarrer un conteneur arrêté |
docker restart <container> | Redémarrer un conteneur |
docker rm <container> | Supprimer un conteneur |
docker rmi <image> | Supprimer une image |
Gestion des conteneurs
| Commande | Description |
|---|
docker run -d <image> | Exécuter le conteneur en mode détaché |
docker run -it <image> | Exécuter le conteneur de manière interactive |
docker run -p 8080:80 <image> | Mapper le port 8080 vers le port 80 du conteneur |
docker run -v /host:/container <image> | Monter le volume |
docker run --name <name> <image> | Exécuter le conteneur avec un nom personnalisé |
docker exec -it <container> bash | Exécuter bash dans un conteneur en cours d’exécution |
docker logs <container> | Afficher les journaux du conteneur |
docker logs -f <container> | Suivre les logs du conteneur |
docker inspect <container> | Inspecter les détails du conteneur |
docker stats | Afficher l’utilisation des ressources du conteneur |
docker top <container> | Afficher les processus en cours d’exécution dans le conteneur |
Gestion des images
| Commande | Description |
|---|
docker build -t <name> . | Construire une image à partir d’un Dockerfile |
docker build -t <name>:<tag> . | Construire une image avec un tag |
docker tag <image> <new-name> | Baliser une image |
docker push <image> | Pousser l’image vers le registre |
docker save <image> > file.tar | Enregistrer l’image dans un fichier tar |
docker load < file.tar | Charger l’image à partir du fichier tar |
docker history <image> | Afficher l’historique des images |
docker search <term> | Rechercher des images dans le registre |
Docker Compose
| Commande | Description |
|---|
docker-compose up | Démarrer les services définis dans le fichier compose |
docker-compose up -d | Démarrer les services en mode détaché |
docker-compose down | Arrêter et supprimer des conteneurs |
docker-compose build | Construire ou reconstruire des services |
docker-compose logs | Afficher les journaux pour tous les services |
docker-compose ps | Lister les conteneurs |
docker-compose exec <service> bash | Exécuter la commande dans le service |
docker-compose pull | Tirer les dernières images |
docker-compose restart | Redémarrer les services |
Gestion du réseau
| Commande | Description |
|---|
docker network ls | Lister les réseaux |
docker network create <name> | Créer un réseau |
docker network rm <name> | Supprimer un réseau |
docker network inspect <name> | Inspecter les détails du réseau |
docker run --network <name> <image> | Exécuter le conteneur sur un réseau spécifique |
Gestion des volumes
| Commande | Description |
|---|
docker volume ls | Lister les volumes |
docker volume create <name> | Créer un volume |
docker volume rm <name> | Supprimer un volume |
docker volume inspect <name> | Inspecter les détails du volume |
docker volume prune | Supprimer les volumes inutilisés |
Workflows courants
Workflow de développement
# Build and run application
docker build -t myapp .
docker run -p 3000:3000 myapp
# Development with volume mounting
docker run -p 3000:3000 -v $(pwd):/app myapp
# Using Docker Compose for development
docker-compose up --build
Déploiement en production
# Build production image
docker build -t myapp:prod .
# Tag for registry
docker tag myapp:prod registry.com/myapp:latest
# Push to registry
docker push registry.com/myapp:latest
# Deploy on production server
docker pull registry.com/myapp:latest
docker run -d -p 80:3000 --name myapp-prod registry.com/myapp:latest
Débogage de conteneurs
# Check container logs
docker logs -f container-name
# Execute shell in running container
docker exec -it container-name bash
# Inspect container configuration
docker inspect container-name
# Check resource usage
docker stats container-name
Meilleures pratiques
Optimisation du Dockerfile
- Utiliser des builds multi-étapes pour réduire la taille de l’image
- Exploiter le cache de build en ordonnant correctement les instructions
- Utiliser des tags d’image de base spécifiques, éviter
latest
- Minimiser le nombre de couches
- Utiliser
.dockerignorepour exclure les fichiers inutiles
Sécurité
- Exécuter les conteneurs en tant qu’utilisateur non-root
- Utiliser des images de base officielles si possible
- Mettre à jour régulièrement les images de base
- Scanner les images à la recherche de vulnérabilités
- Limiter les ressources des conteneurs (CPU, mémoire)
- Utiliser des images de base appropriées (alpine pour une taille plus petite)
- Optimiser le cache des couches
- Utiliser des vérifications de santé pour les conteneurs
- Surveiller l’utilisation des ressources des conteneurs
- Utiliser des volumes pour les données persistantes
Déploiement en production
- Utiliser des outils d’orchestration (Docker Swarm, Kubernetes)
- Implémenter une journalisation et un monitoring appropriés
- Utiliser la gestion des secrets pour les données sensibles
- Configurer des sauvegardes automatisées
- Implémenter des mises à jour progressives