124 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			124 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								# TP3 Docker Networks - Commandes
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## 1. Création des réseaux
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Création d'un réseau bridge personnalisé
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								docker network create bridge-tp3
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Visualisation des réseaux disponibles
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								docker network ls
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## 2. Création des conteneurs
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Création des conteneurs sur le réseau bridge-tp3
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								docker run -d --name web1 --network bridge-tp3 nginx
							 | 
						||
| 
								 | 
							
								docker run -d --name web2 --network bridge-tp3 nginx
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Création d'un conteneur sur le réseau host
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								docker run -d --name web3 --network host nginx
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Création d'un conteneur sur le réseau none
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								docker run -d --name web4 --network none nginx
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Vérification des conteneurs créés
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								docker ps
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## 3. Tests de communication
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Installation de ping dans les conteneurs
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								docker exec web1 apt-get update
							 | 
						||
| 
								 | 
							
								docker exec web1 apt-get install -y iputils-ping
							 | 
						||
| 
								 | 
							
								docker exec web2 apt-get update
							 | 
						||
| 
								 | 
							
								docker exec web2 apt-get install -y iputils-ping
							 | 
						||
| 
								 | 
							
								docker exec web3 apt-get update
							 | 
						||
| 
								 | 
							
								docker exec web3 apt-get install -y iputils-ping
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								Note: L'installation de ping sur web4 (réseau none) ne fonctionnera pas car il n'a pas d'accès réseau.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Récupération des adresses IP des conteneurs
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' web1
							 | 
						||
| 
								 | 
							
								docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' web2
							 | 
						||
| 
								 | 
							
								docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' web3
							 | 
						||
| 
								 | 
							
								docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' web4
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Test de ping entre web1 et web2
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								docker exec web1 ping -c 4 web2
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Test de ping entre web1 et web3 (par IP hôte)
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								# Remplacer HOST_IP par l'adresse IP de votre machine hôte
							 | 
						||
| 
								 | 
							
								docker exec web1 ping -c 4 HOST_IP
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Dans mon cas : 
							 | 
						||
| 
								 | 
							
								docker exec web1 ping -c 4 172.16.3.195
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Test de ping entre web1 et web4
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								# Ce test échouera car web4 n'a pas de réseau
							 | 
						||
| 
								 | 
							
								# Nous aurons besoin de l'adresse IP de web4, mais comme il est sur le réseau none, il n'en a pas
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Test d'accès HTTP
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### Accès à web1
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								# Exposer le port de web1 si ce n'est pas déjà fait
							 | 
						||
| 
								 | 
							
								docker stop web1
							 | 
						||
| 
								 | 
							
								docker run -d --name web1 -p 8081:80 --network bridge-tp3 nginx
							 | 
						||
| 
								 | 
							
								# Tester l'accès
							 | 
						||
| 
								 | 
							
								curl http://localhost:8081
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### Accès à web2
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								# Exposer le port de web2
							 | 
						||
| 
								 | 
							
								docker stop web2
							 | 
						||
| 
								 | 
							
								docker run -d --name web2 -p 8082:80 --network bridge-tp3 nginx
							 | 
						||
| 
								 | 
							
								# Tester l'accès
							 | 
						||
| 
								 | 
							
								curl http://localhost:8082
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### Accès à web3 (réseau host)
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								# web3 utilise directement le port 80 de l'hôte, donc il faut s'assurer qu'il n'est pas déjà utilisé
							 | 
						||
| 
								 | 
							
								curl http://localhost:80
							 | 
						||
| 
								 | 
							
								# ou simplement
							 | 
						||
| 
								 | 
							
								curl http://localhost
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### Accès à web4 (réseau none)
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								# Ce test échouera car web4 n'a pas de connectivité réseau
							 | 
						||
| 
								 | 
							
								# Il n'est pas possible d'accéder à un conteneur sur le réseau none depuis l'extérieur
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## 4. Nettoyage
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Arrêt et suppression des conteneurs
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								docker stop web1 web2 web3 web4
							 | 
						||
| 
								 | 
							
								docker rm web1 web2 web3 web4
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Suppression du réseau personnalisé
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								docker network rm bridge-tp3
							 | 
						||
| 
								 | 
							
								```
							 |