Rapport TP02 - GuillaumeDelferiere/Admin-R-seaux_2_M1-4 GitHub Wiki
TP2 : Suite de la découverte de Docker
Noms des auteurs :
Date de réalisation :
1. Les volumes Docker
Documentez les commandes importantes de cette section.
docker run -p80:80 --name web2 --mount type=bind, source="chemin_de_la_source", target=/usr/share/nginx/html my_nginx
docker run -p80:80 --name web-volume --mount type=volume, source=mon-volume, target=/usr/share/nginx/html my_nginx
docker volume inspect mon-volume
Quelles sont les différences entre les deux types de volumes utilisés ici ? Dans quel cas utiliser l'un plutôt que l'autre?
- Bind Mounts : pour le partage de données avec l'hôte, permet d'accéder directement aux fichiers du système hôte, risque de conflits avec le système d'exploitation (permission, sécurité) et pratique pour le développement
- Les différents cas dans lesquels Bind Mounts est adéquat :
- partage de fichiers de configuration entre l'hôte et le container,
- partage de code source entre la machine du développeur et le container sur lequel le code est exécuté
- Quand on est certain que le chemin du répertoire partagé de l'hôte existera toujours
- Volumes Docker : prévu pour un partage de données entre container, meilleure sécurité, idéal pour stocker des bases de données ou des logs
- Les différents cas dans lesquels Volumes Docker est adéquat :
- Partage de données entre plusieurs containers et elles doivent persister au delà du cycle de vie des containers qui l'utilisent
- Quand on est pas sûr que l'hôte possède le chemin préconisé pour le répertoire partagé
- Les données doivent être stockées de manière distante (stockage cloud)
2. Les réseaux Docker
Documentez les commandes importantes de cette section.
docker inspect web-server
docker network create my-net
docker network ls
docker network inspect my-net
2.1. Réseau par défaut
- Quelles sont les interfaces réseau et adresses IP de chaque container? Vous pouvez trouvez cette information soit depuis l'hôte avec un
docker inspect(cfr TP1), soit depuis le container lui-même. Note dans ce dernier cas : Si la commandeip addrn'est pas disponible, installez le packageiproute2. - Les containers peuvent-ils se joindre via
ping? - Les containers ont-ils accès à Internet ?
- Est-ce une bonne idée d'utiliser ce réseau par défaut? Quels en sont les avantages et les inconvénients ?
2.2. Réseaux définis par l'utilisateur
- Le nouveau container ajouté sur le réseau
my-netpeut-il contacter les deux précédents (liés au réseau bridge par défaut)? A-t-il accès à Internet? - Quels sont les différences entre ce nouveau réseau et le bridge par défaut? Quels en sont les avantages et inconvénients ?
3. Docker-compose
- Qu'avez-vous observé lors de cette première expérience avec Docker Compose ? Faites un court bilan sur base de screenshots.
- Documentez les commandes importantes.
4. Exercices récapitulatifs
4.1. Mise en application simple
Votre infrastructure est-elle conforme à ce qui était attendu? Comment avez-vous pu la valider? Donnez les commandes utilisées et illustrez le résultat par des screenshots.
4.2. Exemple du cours théorique
- Dans cette infrastructure, comment les données sont-elles partagées? Via des Bind Mounts ou des Volumes? Pourquoi ?
- Quels sont les spécificités de chaque container?
- Une fois démarrée, l'infrastructure est-elle conforme à ce qui était attendu? Comment avez-vous pu la valider? Donnez les commandes utilisées et illustrez le résultat par des screenshots.
4.3. Exemple du tutoriel Docker
- Quelles sont vos observations suite à la réalisation de ce tutoriel ?
- Sur quelle base les containers sont-ils lancés ?
- Qu'avez-vous appris de nouveau ?