Docker et déploiement : de votre machine à la production

Docker et déploiement est un cours de niveau avancé de 5 leçons (environ 3 h 59), avec 16 exercices et 15 questions de quiz. Prérequis : Terminal et ligne de commande, HTTP et API REST. Le cours demande un environnement de projet complet, prévu dans une phase ultérieure de la plateforme.

  • Back-end
  • Avancé
  • 5 leçons
  • 3 h 59
  • 16 exercices
  • Environnement de projet complet (phase 2)

Le cours en bref

Ce cours vous fait passer du « ça marche sur ma machine » à une application déployée de façon fiable. Vous apprendrez à manipuler conteneurs et images, à écrire des Dockerfile optimisés et sécurisés, à orchestrer une API et sa base avec Docker Compose, puis à publier et déployer vos images avec un pipeline CI/CD et un reverse proxy HTTPS. Les exemples couvrent les API web comme les services de data science.

Ce que tu sauras faire

  • Lancer, inspecter et gérer des conteneurs, ports et volumes avec la CLI Docker
  • Écrire un Dockerfile efficace en exploitant le cache des couches
  • Produire des images légères et sécurisées : multi-étapes, utilisateur non root, aucun secret, healthcheck
  • Décrire et piloter une application multi-services avec Docker Compose
  • Publier des images versionnées et automatiser leur déploiement avec une CI/CD
  • Mettre une application en production derrière un reverse proxy HTTPS avec retour arrière

Programme des 5 leçons

    • Expliquer la différence entre image, conteneur et machine virtuelle
    • Lancer, inspecter et arrêter un conteneur avec la CLI Docker
    • Publier un port et monter un volume

    ConteneursImagesCLI Docker

  1. 02

    Écrire un Dockerfile pour son application

    18 min
    • Écrire un Dockerfile pour une application Node.js ou Python
    • Exploiter le cache des couches en ordonnant correctement les instructions
    • Construire, étiqueter et lancer sa propre image

    DockerfileCouches et cacheConstruction d'image

  2. 03

    Optimiser et sécuriser ses images

    18 min
    • Réduire la taille d'une image avec un build multi-étapes
    • Appliquer les bonnes pratiques de sécurité : utilisateur non root, versions épinglées, pas de secrets
    • Ajouter un healthcheck et analyser les vulnérabilités d'une image

    Build multi-étapesSécurité des imagesHealthcheck

  3. 04

    Docker Compose : orchestrer une application multi-services

    18 min
    • Décrire une application (API + base de données) dans un fichier compose.yaml
    • Gérer réseau, volumes, variables d'environnement et ordre de démarrage
    • Utiliser les commandes docker compose au quotidien

    Docker ComposeRéseaux DockerVolumes

  4. 05

    Déployer en production : registre, CI/CD et HTTPS

    20 min
    • Publier une image versionnée dans un registre
    • Automatiser build et déploiement avec un pipeline CI/CD
    • Mettre en production derrière un reverse proxy HTTPS avec configuration par l'environnement, journaux et retour arrière

    Registre d'imagesCI/CDReverse proxy et HTTPSApplication 12 facteurs

Projet final

Conteneuriser et déployer une application complète

Prenez une application existante du parcours (API Express + PostgreSQL, ou API de prédiction FastAPI) et rendez-la déployable de bout en bout : Dockerfile multi-étapes sécurisé, compose.yaml pour le développement, pipeline CI qui teste puis publie l'image, et déploiement HTTPS sur un serveur ou une plateforme de conteneurs, avec une procédure de retour arrière documentée.

Livrables

  • Un Dockerfile multi-étapes, un .dockerignore et la preuve que l'image s'exécute en utilisateur non root
  • Un compose.yaml (et compose.override.yaml) lançant l'application et sa base en une commande
  • Un workflow CI/CD qui teste, construit, tague et publie l'image
  • L'URL HTTPS de l'application déployée et un README de déploiement (variables d'environnement, commandes, retour arrière)

Critères d'évaluation

  • L'application démarre en local avec `docker compose up` sans autre installation
  • L'image finale est légère, épinglée, sans secret et dotée d'un healthcheck
  • Le pipeline bloque la publication si les tests échouent
  • Le déploiement est accessible en HTTPS et la base n'est pas exposée publiquement
  • Le retour à la version précédente est documenté et démontré

Questions fréquentes

Faut-il savoir administrer Linux pour apprendre Docker ?

Il faut être à l'aise avec la ligne de commande (cours F2). Le cours explique les notions système utiles, comme les ports, les volumes et les utilisateurs, au moment où elles servent.

Quelle différence entre Docker et une machine virtuelle ?

Une machine virtuelle embarque un système d'exploitation complet. Un conteneur partage le noyau de la machine hôte : il est beaucoup plus léger et démarre en une fraction de seconde.

Ce cours est-il utile pour un data scientist ?

Oui. Les exemples incluent Jupyter, des API de prédiction Python et le déploiement sur une plateforme de conteneurs managée, pour rendre vos modèles reproductibles et utilisables.

Docker Compose suffit-il pour la production ?

Pour une application sur un seul serveur, Compose avec un reverse proxy HTTPS est une solution simple et robuste. Pour de nombreux services ou une forte montée en charge, on se tourne vers une plateforme managée ou Kubernetes.

Ce cours, raconté pour ton métier

Dis ce que tu veux savoir faire : « Docker et déploiement » prend sa place dans ton parcours, avec des exemples de ton secteur. Les notions restent celles du cours.

L'aperçu est gratuit, et les cours se suivent un par un sans payer. Le parcours ne contient que des leçons du catalogue.