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