This commit is contained in:
stiti
2025-04-08 17:14:02 +02:00
parent a0e2bb3ee0
commit f05c9725a7
6 changed files with 460 additions and 0 deletions

114
TP3/tp3.md Normal file
View File

@@ -0,0 +1,114 @@
# 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**
```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**
- Cloner : https://github.com/MaximePIERRONT/beforeStage.git
- Personnaliser static-site.html :
- Remplacer "NOM PRENOM" par votre nom
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