Ajouts
This commit is contained in:
		
							
								
								
									
										114
									
								
								TP3/tp3.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										114
									
								
								TP3/tp3.md
									
									
									
									
									
										Normal 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
 | 
			
		||||
		Reference in New Issue
	
	Block a user