Aller au contenu

Commandes Docker

Commandes Docker complètes et workflows pour la conteneurisation sur toutes les plateformes.

Commandes de base

CommandeDescription
docker --versionAfficher la version de Docker
docker infoAfficher les informations système
docker helpAfficher l’aide pour les commandes Docker
docker imagesLister toutes les images
docker psLister les conteneurs en cours d’exécution
docker ps -aLister 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

CommandeDescription
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> bashExé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 statsAfficher l’utilisation des ressources du conteneur
docker top <container>Afficher les processus en cours d’exécution dans le conteneur

Gestion des images

CommandeDescription
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.tarEnregistrer l’image dans un fichier tar
docker load < file.tarCharger 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

CommandeDescription
docker-compose upDémarrer les services définis dans le fichier compose
docker-compose up -dDémarrer les services en mode détaché
docker-compose downArrêter et supprimer des conteneurs
docker-compose buildConstruire ou reconstruire des services
docker-compose logsAfficher les journaux pour tous les services
docker-compose psLister les conteneurs
docker-compose exec <service> bashExécuter la commande dans le service
docker-compose pullTirer les dernières images
docker-compose restartRedémarrer les services

Gestion du réseau

CommandeDescription
docker network lsLister 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

CommandeDescription
docker volume lsLister 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 pruneSupprimer 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)

Performance

  • 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