114 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# 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 |