Files
TP_Docker/TP3/exo1-networks/COMMANDS.md

124 lines
3.1 KiB
Markdown
Raw Normal View History

2025-04-08 17:14:02 +02:00
# 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
```