Apprendre Docker Rapidement : Guide Pratique

containers

Dans le monde en constante évolution du développement logiciel, Docker s’est imposé comme un outil essentiel pour les développeurs et les équipes IT. Grâce à sa capacité à encapsuler des applications dans des conteneurs légers et portables, Docker simplifie le déploiement, l’évolutivité et la gestion des applications. En éliminant les incompatibilités environnementales, il permet aux développeurs de travailler dans des environnements cohérents, du développement à la production. Cette uniformité réduit non seulement le temps de déploiement, mais améliore également la collaboration entre les équipes. En intégrant Docker dans votre flux de travail, vous adoptez une approche moderne et efficace qui répond aux défis actuels de l’optimisation des ressources et de la rapidité de mise sur le marché. Docker n’est pas seulement une technologie; c’est une révolution dans la manière dont nous concevons et déployons les logiciels.


1. Installation de Docker

  sudo apt update && sudo apt install docker.io
  sudo systemctl enable --now docker

2. Concepts Clés

  • Image : Modèle prédéfini pour créer des conteneurs (ex: nginx, python).
  • Conteneur : Instance exécutable d’une image.
  • Dockerfile : Fichier de configuration pour construire une image personnalisée.
  • Docker Hub : Registre public pour partager des images (ex: hub.docker.com).

3. Commandes de Base

CommandeDescription
docker run -d -p 80:80 nginxLancer un conteneur Nginx en arrière-plan (-d), mappant le port 80 de l’hôte au port 80 du conteneur.
docker psLister les conteneurs en cours d’exécution.
docker stop <ID>Arrêter un conteneur.
docker rm <ID>Supprimer un conteneur.
docker imagesLister les images locales.
docker rmi <IMAGE>Supprimer une image.

4. Créer une Image Personnalisée

Étapes pour une application Python simple :

  1. Créez un fichier app.py :
   from flask import Flask
   app = Flask(__name__)
   @app.route('/')
   def hello():
       return "Hello Docker!"
   if __name__ == '__main__':
       app.run(host='0.0.0.0', port=5000)
  1. Créez un Dockerfile :
   # Image de base
   FROM python:3.9-slim
   # Copier le code
   COPY app.py /app/
   WORKDIR /app
   # Installer les dépendances
   RUN pip install flask
   # Exposer le port
   EXPOSE 5000
   # Commande de démarrage
   CMD ["python", "app.py"]
  1. Construisez et exécutez :
   docker build -t mon-app .
   docker run -d -p 5000:5000 mon-app

Accédez à http://localhost:5000 pour voir le résultat.


5. Gérer les Données avec des Volumes

  • Lier un répertoire local :
  docker run -v /chemin/local:/chemin/conteneur mon-image
  • Créer un volume nommé :
  docker volume create mon-volume
  docker run -v mon-volume:/chemin/conteneur mon-image

6. Docker Compose pour des Applications Multi-Conteneurs

Créez un docker-compose.yml :

version: '3'
services:
  web:
    image: mon-app
    ports:
      - "5000:5000"
  db:
    image: postgres
    volumes:
      - db-data:/var/lib/postgresql/data
volumes:
  db-data:

Lancez les services :

docker-compose up -d

7. Astuces de Débogage

  • Voir les logs :
  docker logs <ID_CONTAINER>
  • Accéder au shell d’un conteneur :
  docker exec -it <ID_CONTAINER> /bin/bash

8. Ressources pour Aller Plus Loin

Retour en haut