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