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
 | 
						|
``` |