Files
TP_Docker/TP3/tp3.md
2025-04-08 17:14:02 +02:00

3.6 KiB

TP3 : Docker Networks & Dockerfile

Organisation

  • Créer un dossier TP3/
  • Pour chaque exercice, créer un sous-dossier avec les fichiers requis
  • Documenter toutes les commandes dans COMMANDS.md
  • Répondre aux questions dans QUESTIONS.md

Livrables attendus

  • Structure du projet :
TP3/
├── exo1-networks/
│   ├── COMMANDS.md
│   └── QUESTIONS.md
└── exo2-dockerfile/
    ├── Dockerfile
    ├── COMMANDS.md
    └── QUESTIONS.md

Exercice 1 : Docker Networks

Objectif

Comprendre et manipuler les différents types de réseaux Docker et la communication entre conteneurs.

Actions à réaliser

  1. Création des réseaux

    • Créer un réseau de type bridge nommé "bridge-tp3"
    • Utiliser le réseau prédéfini de type host nommé "host"
    • Utiliser le réseau prédéfini de type none nommé "none"
  2. Création des conteneurs

    • Créer 2 conteneurs nginx (web1, web2) sur bridge-tp3
    • Créer 1 conteneur nginx (web3) sur host
    • Créer 1 conteneur nginx (web4) sur none
  3. Tests de communication

    • Tester ping entre web1 et web2
    • Tester ping entre web1 et web3
    • Tester ping entre web1 et web4
    • Tester l'accès HTTP depuis votre machine vers chaque conteneur
  4. Documentation

    • Noter toutes les commandes dans COMMANDS.md
    • Expliquer les résultats dans QUESTIONS.md

Questions à répondre

  1. Expliquer les différences entre les types de réseaux Docker
  2. Pourquoi web4 est-il isolé et inaccessible ?
  3. Analyser les résultats des tests de communication
  4. Pour chaque cas d'usage, quel type de réseau recommanderiez-vous :
    • Serveur web public
    • Base de données
    • Service de cache Redis

Exercice 2 : Dockerfile

Objectif

Construire une image Docker optimisée pour Apache httpd servant un site web statique.

Actions à réaliser

  1. Création du Dockerfile

    # Choisir l'OS le plus léger possible
    # Installer Apache httpd
    # Définir les labels :
    #   - MAINTAINER: votre_nom
    #   - VERSION: 1.8
    #   - TP: 3
    
  2. Ajout des sources

  3. Configuration

    • Ajouter les variables d'environnement :
      SCHOOL: IUT
      LEVEL: 1.8
      
    • Implémenter un healthcheck (intervalle: 1min, timeout: 1s)
  4. Tests et validation

    • Builder l'image
    • Lancer un conteneur
    • Vérifier :
      • Le site web est accessible
      • Les variables d'environnement sont correctes
      • Le healthcheck fonctionne

Questions à répondre

  1. Pourquoi choisir un OS minimal ? Quels sont les avantages ?
  2. Quel est l'intérêt d'utiliser des variables d'environnement ?
  3. À quoi sert le healthcheck dans un contexte de production ?
  4. Comment pourriez-vous optimiser davantage cette image ?

Publication sur Docker Hub

  1. Créer un compte Docker Hub si nécessaire
  2. Tagger l'image : docker tag local-image username/repository:tag
  3. Pousser l'image : docker push username/repository:tag
  4. Ajouter le lien Docker Hub dans COMMANDS.md

Critères d'évaluation

  • Qualité et clarté des explications dans les fichiers QUESTIONS.md
  • Précision et exhaustivité des commandes dans COMMANDS.md
  • Optimisation et bonnes pratiques dans le Dockerfile
  • Compréhension des concepts de réseaux Docker
  • Capacité à tester et valider son travail