skip to content

Recherche

Docker

Commandes Docker essentielles, docker-compose & dockerfile !

Docker est une plateforme qui permet d’empaqueter et d’exécuter des applications dans des conteneurs légers et portables sans se soucier de l’environnement dans lequel il est installé.

📦 Gestion des images

📌 Action🧠 Commande
📦 Lister toutes les imagesdocker images -a
📜 Télécharger une imagedocker pull postgres:latest
🏗️ Construire une imagedocker build -t monappli .
📜 Supprimer une imagedocker rmi <image_id>
🧹 Supprimer toutes les imagesdocker rmi $(docker images -q)

🐳 Gestion des conteneurs

📌 Action🧠 Commande
▶️ Lancer un conteneurdocker run <image>
🔙 Lancer en arrière-plandocker run -d <image>
⛔ Arrêter un conteneurdocker stop <container_id>
🔁 Redémarrer un conteneurdocker restart <container_id>
⏸️ Mettre en pausedocker pause <container_id>
▶️ Reprendredocker unpause <container_id>
🗑️ Supprimer un conteneurdocker rm <container_id>
🧹 Supprimer tous les conteneursdocker rm $(docker ps -aq)
🛑 Stopper tous les conteneursdocker stop $(docker ps -q)

🔍 Inspection et monitoring

📌 Action🧠 Commande
🔄 Lister les conteneurs actifsdocker ps
🔄 Lister tous les conteneursdocker ps -a
📜 Voir les logs d’un conteneurdocker logs <container_id>
📈 Voir l’utilisation des ressourcesdocker stats
🔍 Inspecter un conteneurdocker inspect <container_id>
💻 Se connecter à un conteneurdocker exec -it <container_id> bash (ou sh)
🌐 Lister les réseaux Dockerdocker network ls
💾 Lister les volumes Dockerdocker volume ls
📋 Infos système sur Dockerdocker info
🧠 Connaître les versions installéesdocker version

🧹 Nettoyage (Prune)

📌 Action🧠 Commande
🧼 Nettoyer les conteneurs arrêtésdocker container prune
🧽 Nettoyer les images non utiliséesdocker image prune
🧼 Nettoyer les réseaux inutilisésdocker network prune
🧽 Nettoyer les volumes non utilisésdocker volume prune
⚠️ Nettoyage complet (dangereux !)docker system prune -a
🗑️ Supprimer images sans tagdocker image prune -a

🛠️ Dépannage et Debug

📌 Action🧠 Commande
📜 Voir les logs en temps réeldocker logs -f <container_id>
🔍 Voir les processus dans un conteneurdocker top <container_id>
📊 Statistiques d’un conteneurdocker stats <container_id>
🕵️ Inspecter les changements de fichiersdocker diff <container_id>
📋 Historique d’une imagedocker history <image_id>
🌐 Tester la connectivité réseaudocker exec <container_id> ping google.com
📁 Copier du conteneur vers l’hôtedocker cp <container>:/chemin/fichier ./fichier
📤 Copier de l’hôte vers le conteneurdocker cp ./fichier <container>:/chemin/fichier

📝 Dockerfile

Dockerfile = recette pour créer une image personnalisée

Exemple simple - Nginx

FROM nginx:alpine
COPY index.html /usr/share/nginx/html/
EXPOSE 80

Exemple complet - App Node.js

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]

Instructions clés

  • FROM - Image de base (ubuntu, nginx, node, postgres…)
  • WORKDIR - Dossier de travail dans le conteneur
  • COPY - Copier fichiers de l’hôte vers le conteneur
  • RUN - Exécuter des commandes lors du build
  • EXPOSE - Port à exposer
  • CMD - Commande par défaut au lancement

🔄 Docker Compose

Docker Compose = orchestrer un ou plusieurs conteneurs avec un fichier YAML

Exemple simple - Site + Base

services:
  web:
    image: nginx
    ports:
      - "80:80"
    volumes:
      - ./site:/usr/share/nginx/html
  
  db:
    image: postgres:15
    environment:
      POSTGRES_PASSWORD: motdepasse
      POSTGRES_DB: monapp
    volumes:
      - postgres_data:/var/lib/postgresql/data
 
volumes:
  postgres_data:

Exemple avancé - App complète

version: '3.8'
services:
  app:
    build: .
    ports:
      - "3000:3000"
    environment:
      - DATABASE_URL=postgres://user:pass@db:5432/app
    depends_on:
      - db
  
  db:
    image: postgres:15
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: pass
      POSTGRES_DB: app

Commandes essentielles

📌 Action🧠 Commande
▶️ Lancer en arrière-plandocker-compose up -d
⛔ Tout arrêter et supprimerdocker-compose down
📜 Voir les logs en temps réeldocker-compose logs -f
📋 Statut des servicesdocker-compose ps
🔁 Redémarrer tous les servicesdocker-compose restart
🏗️ Construire les imagesdocker-compose build
⏹️ Arrêter sans supprimerdocker-compose stop
📊 Voir les logs d’un servicedocker-compose logs <service>