3.6 KiB
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
-
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"
-
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
-
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
-
Documentation
- Noter toutes les commandes dans COMMANDS.md
- Expliquer les résultats dans QUESTIONS.md
Questions à répondre
- Expliquer les différences entre les types de réseaux Docker
- Pourquoi web4 est-il isolé et inaccessible ?
- Analyser les résultats des tests de communication
- 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
-
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
-
Ajout des sources
- Cloner : https://github.com/MaximePIERRONT/beforeStage.git
- Personnaliser static-site.html :
- Remplacer "NOM PRENOM" par votre nom
-
Configuration
- Ajouter les variables d'environnement :
SCHOOL: IUT LEVEL: 1.8
- Implémenter un healthcheck (intervalle: 1min, timeout: 1s)
- Ajouter les variables d'environnement :
-
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
- Pourquoi choisir un OS minimal ? Quels sont les avantages ?
- Quel est l'intérêt d'utiliser des variables d'environnement ?
- À quoi sert le healthcheck dans un contexte de production ?
- Comment pourriez-vous optimiser davantage cette image ?
Publication sur Docker Hub
- Créer un compte Docker Hub si nécessaire
- Tagger l'image :
docker tag local-image username/repository:tag
- Pousser l'image :
docker push username/repository:tag
- 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