# Exercice : Docker et les réseaux ## Informations générales | Élément | Description | |-----------------------|-------------| | **Compétences** | Documenter la structure logique et physique de l’environnement dans un schéma de réseau avec des indications spécifiques aux services. | | **Objectifs** | - Citer de tête les réseaux principaux en lien avec la conteneurisation
- Construire des conteneurs et les mettre en réseaux
- Déterminer dans quelles circonstances tel ou tel réseau est le plus approprié | | **Durée estimée** | 60 min | | **Répertoire de travail** | `C:\Docker\docker-network` (Windows) ou `~/docker/docker-network` (Linux) | | **Fichiers sources** | Aucun | | **À produire** | - Un document imprimé avec vos observations et réponses | | **Moyens d’aide** | Le support de cours | --- ## 1. Rappel ⚠️ **Important en cas d'utilisation sous Windows** : le réseau *host* est disponible sous Windows depuis Docker Desktop v4.34. Il faudra donc mettre Docker à jour. --- ## 2. Questions ### 2.1. Les types de réseau Docker Citez les types de réseau Docker principaux et expliquez dans quel contexte vous les utiliseriez : *(réponse attendue : bridge, host, none, overlay …)* --- ### 2.2. Commandes de base Quelles sont les commandes pour : - lister les réseaux - inspecter un réseau en particulier - lister les conteneurs - inspecter les conteneurs --- ## 3. Échauffement ### 3.1. Préparation d’une image « Boîte à outils réseau » Écrire un script pour créer une image de conteneur avec les caractéristiques suivantes : - Point de départ : dernière image **Ubuntu** - Paquets installés : `nmap`, `iproute2`, `iputils-ping` - **Bash** doit être la commande par défaut ➡️ L’image doit être construite et taguée `network-utils:latest`. - Notez ci-dessous le contenu du script : ```dockerfile # Exemple de script à compléter FROM ubuntu:latest RUN apt-get update && apt-get install -y nmap iproute2 iputils-ping CMD ["tail", "-f", "/dev/null"] ``` - Détaillez les étapes que vous avez effectuées : --- ### 3.2. Création d’un réseau bridge Commande pour créer un réseau `bridge` nommé `mon_bridge`, avec le sous-réseau `192.168.7.0/24`. --- ### 3.3. Création d’un réseau host Commande pour créer un réseau `host` nommé `my_host`, avec le sous-réseau `192.168.19.0/24`. --- ### 3.4. Création d’un bridge isolé (sans accès Internet) Commande pour créer un réseau `bridge` nommé `isolated_bridge`, avec le sous-réseau `192.168.20.0/24`. --- ## 4. Cas pratique 1 Mettre en place la configuration demandée (compléter le schéma avec les adresses IP importantes). ![image](images/exo-docker-network-use-case1.png) - Notez toutes les commandes utilisées : - Partagez vos observations : --- ## 5. Cas pratique 2 Mettre en place la configuration demandée (compléter le schéma avec les adresses IP importantes). ![image](images/exo-docker-network-use-case2.png) - Notez toutes les commandes utilisées : - Partagez vos observations : --- ## 6. Cas pratique 3 Mise en place de la configuration suivante : ![image](images/exo-docker-network-use-case3.png) - Le conteneur **nginx1** doit utiliser la dernière image officielle `nginx`. - Il doit mettre à disposition une page `index.html` dont le contenu est `Hello les devs !`. - L'hòte doit voir la page index avec une redirection de port (8080 vers 80) - Notez toutes les commandes utilisées : - Partagez vos observations : --- ## 7. Cas pratique 4 Mettre en place la configuration demandée. ![image](images/exo-docker-network-use-case4.png) - Notez toutes les commandes utilisées : - Partagez vos observations : --- ## 8. Compréhension des différences entre bridge par défaut et bridge créé À partir du cas pratique 4 : - ajoutez un nouveau réseau `bridge` nommé `new_bridge` avec le sous-réseau `192.168.55.0/24`. - avec vos outils réseau, comparez le comportement du `bridge` par défaut et du `bridge` créé par un utilisateur. - Notez vos observations et différences constatées : ---