Files
TP_Docker/TP3/exo1-networks/COMMANDS.md
2025-04-08 17:14:02 +02:00

3.1 KiB

TP3 Docker Networks - Commandes

1. Création des réseaux

Création d'un réseau bridge personnalisé

docker network create bridge-tp3

Visualisation des réseaux disponibles

docker network ls

2. Création des conteneurs

Création des conteneurs sur le réseau bridge-tp3

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

docker run -d --name web3 --network host nginx

Création d'un conteneur sur le réseau none

docker run -d --name web4 --network none nginx

Vérification des conteneurs créés

docker ps

3. Tests de communication

Installation de ping dans les conteneurs

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

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

docker exec web1 ping -c 4 web2

Test de ping entre web1 et web3 (par IP hôte)

# 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

# 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

# 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

# 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)

# 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)

# 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

docker stop web1 web2 web3 web4
docker rm web1 web2 web3 web4

Suppression du réseau personnalisé

docker network rm bridge-tp3