Skip to content

TP3 : Exercice pratique – Nginx et page HTML

Objectif du TP

  • Construire une image simple basée sur Nginx et y déployer une page HTML personnalisée.
  • Manipuler les commandes de build/run/logs et comprendre le cycle de vie d’un conteneur.
  • Découvrir un registry Docker local (push/pull/tag).

Rendu attendu

  • Captures d’écran des commandes clés (docker build, docker run, docker logs, docker ps).
  • Le contenu de votre index.html (avec votre mème).
  • Les commandes utilisées pour tagger/pusher/puller l’image depuis le registry local.

Questions d'ouverture

  • Qu’embarque une image Docker par rapport à un conteneur qui s’exécute ?

Focus : Images, conteneurs et logs

  • Une image est immuable; un conteneur est son instance en exécution.
  • Écrivez les logs sur STDOUT/STDERR (pas de fichiers dans le conteneur) pour qu’ils soient visibles via docker logs et collectés par vos outils d’observabilité (ELK, Loki, etc.).

Mise en pratique

  1. Créer un Dockerfile dans un dossier vide, qui se nomme Dockerfile :
    FROM nginx:alpine
    COPY index.html /usr/share/nginx/html
    
  2. Créer un fichier index.html :
    <html>
    <head><title>Mon super site</title></head>
    <body>
      <h1>Hello Docker!</h1>
      <p>Ma page personnalisée.</p>
    </body>
    </html>
    

  1. Construire l’image :
    docker build -t webserver-image:v1 .
    
  2. Lancer le conteneur :
    docker run -d --name mysite -p 80:80 webserver-image:v1
    
    • Ouvrez votre navigateur à l’adresse http://localhost
    • Vérifiez que la page s’affiche.

  1. Exercice - logs :

    • Tapez docker logs mysite. Que voyez-vous ?
    • Modifiez votre index.html,
    • Créez votre plus beau meme grâce à : Meme Generator - Imgflip
    • Puis insérez-le sur votre page web.
    • Rebuild l’image. Relancez le conteneur.
  2. Exercice - arrêt / suppression :

    • Arrêtez le conteneur : docker stop mysite
    • Supprimez-le : docker rm mysite
    • Rajoutez l’option --rm lors du run pour supprimer automatiquement le conteneur quand il s’arrête.

Mettre en place un registry local

  1. Démarrez un registry :

    docker run -d -p 5000:5000 --name local-registry registry:2
    

  2. Taguez votre image vers le registry :

    docker tag webserver-image:v1 localhost:5000/webserver-image:v1
    

  3. Poussez l’image :
    docker push localhost:5000/webserver-image:v1
    

Tester le pull depuis le registry

  1. Supprimez l’image locale pour simuler un nouveau poste :
    docker rmi webserver-image:v1
    docker rmi localhost:5000/webserver-image:v1
    
  2. Déplacez ou supprimez votre Dockerfile et index.html pour prouver qu’ils ne sont plus disponibles en local.
  3. Récupérez l’image depuis votre registry :
    docker pull localhost:5000/webserver-image:v1
    
  4. Lancez à nouveau le conteneur :
    docker run -d --name mysite -p 80:80 localhost:5000/webserver-image:v1
    
    • Vérifiez à nouveau que http://localhost fonctionne.

Nettoyage final

  1. Arrêtez et supprimez votre conteneur mysite :
    docker stop mysite
    docker rm mysite
    
  2. Arrêtez et supprimez le registry local :
    docker stop local-registry
    docker rm local-registry
    
  3. Supprimez les images non utilisées :
    docker image prune
    

Conclusion

Dans ce cours, vous avez :

  1. Expérimenté la création et l’exécution d’images Docker via un Dockerfile.
  2. Pratiqué les commandes de base (build, run, logs, ps, stop, rm…) et fait un exercice avec Nginx (cela servira pour l'évaluation).
  3. Utilisé un registry local pour stocker et partager vos images.