Introduction
Le réseautage Docker est un aspect fondamental de l'orchestration de conteneurs, permettant aux conteneurs de communiquer entre eux et avec des réseaux externes. Ce défi vous guidera à travers les concepts essentiels du réseau Docker, de la création et la gestion des réseaux à la connexion et déconnexion des conteneurs.
En relevant ce défi, vous acquerrez une expérience pratique des commandes réseau Docker et comprendrez comment configurer la communication entre les conteneurs. Ces compétences sont cruciales pour développer et déployer des applications multi-conteneurs dans des environnements Docker.
Plongeons dans l'univers du réseautage Docker !
Créer un réseau
Dans cette étape, vous allez créer votre premier réseau Docker. C'est la base pour connecter des conteneurs et permettre la communication entre eux.
Tâches
- Créez un nouveau réseau de type bridge nommé
my-networkà l'aide de la commandedocker network create. - Vérifiez que le réseau a été créé en listant tous les réseaux Docker.
Exigences
- Effectuez toutes les opérations dans le répertoire
/home/labex/project. - Utilisez le pilote bridge par défaut lors de la création du réseau.
Exemple
Après avoir terminé cette étape, vous devriez voir my-network listé lorsque vous exécutez docker network ls :
NETWORK ID NAME DRIVER SCOPE
abcdef123456 my-network bridge local
Lancer des conteneurs dans le réseau
Maintenant que nous avons un réseau, lançons quelques conteneurs et connectons-les à celui-ci. Cette étape démontrera comment démarrer des conteneurs au sein d'un réseau spécifique, un concept clé du réseautage Docker.
Tâches
- Démarrez un conteneur nommé
container1en utilisant l'imagenginxet connectez-le àmy-network. - Démarrez un autre conteneur nommé
container2en utilisant l'imagehttpdet connectez-le àmy-network. - Vérifiez que les deux conteneurs sont en cours d'exécution et connectés à
my-network.
Exigences
- Effectuez toutes les opérations dans le répertoire
/home/labex/project. - Utilisez le drapeau
--networklors du démarrage des conteneurs pour les connecter àmy-network. - Exécutez les deux conteneurs en mode détaché (detached mode).
Exemple
Après avoir terminé cette étape, vous devriez voir les deux conteneurs en cours d'exécution en utilisant docker ps :
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
abcdef123456 nginx "..." 2 minutes ago Up 2 minutes 80/tcp container1
fedcba654321 httpd "..." 2 minutes ago Up 2 minutes 80/tcp container2
Tester la connectivité
Dans cette étape, vous allez vérifier que les conteneurs peuvent communiquer entre eux via le réseau que vous avez créé. C'est un test crucial pour s'assurer que votre configuration réseau fonctionne comme prévu.
Tâches
- Utilisez la commande
docker execpour ouvrir un shell danscontainer1. - Depuis l'intérieur de
container1, utilisez la commandecurlpour accéder àcontainer2en utilisant son nom de conteneur.
Exigences
- Effectuez toutes les opérations dans le répertoire
/home/labex/project. - Utilisez
container2comme nom d'hôte dans votre commandecurl. - La commande
curldoit accéder au port HTTP par défaut (80) surcontainer2.
Exemple
Après avoir exécuté la commande curl depuis container1, vous devriez voir le contenu de la page par défaut du serveur Apache HTTP :
<!DOCTYPE html>
<html><body><h1>It works!</h1></body></html>
Connecter un conteneur à plusieurs réseaux
Dans cette étape, vous apprendrez comment connecter un seul conteneur à plusieurs réseaux. C'est un concept plus avancé, utile pour créer des topologies réseau complexes ou pour migrer progressivement des services entre différents réseaux.
Tâches
- Créez un nouveau réseau bridge nommé
my-network2. - Connectez
container2àmy-network2tout en conservant sa connexion àmy-network. - Vérifiez que
container2est désormais connecté aux deux réseaux.
Exigences
- Effectuez toutes les opérations dans le répertoire
/home/labex/project. - Utilisez la commande
docker network connectpour ajoutercontainer2àmy-network2. - Utilisez la commande
docker inspectpour vérifier les connexions réseau.
Exemple
Après avoir connecté container2 à my-network2, vous devriez voir les deux réseaux listés lors de l'inspection du conteneur :
"Networks": {
"my-network": {
...
},
"my-network2": {
...
}
}
Déconnecter un conteneur d'un réseau
Dans cette étape, vous apprendrez comment retirer un conteneur d'un réseau sans arrêter le conteneur. Cela est utile lorsque vous devez isoler un conteneur ou lorsque vous réorganisez votre architecture réseau.
Tâches
- Déconnectez
container2demy-networkà l'aide de la commandedocker network disconnect. - Vérifiez que
container2n'est plus connecté àmy-network.
Exigences
- Effectuez toutes les opérations dans le répertoire
/home/labex/project. - Utilisez la commande
docker network disconnectpour retirercontainer2demy-network. - Utilisez la commande
docker network inspectpour vérifier la déconnexion.
Exemple
Après avoir déconnecté container2 de my-network, vous ne devriez plus voir container2 listé lors de l'inspection de my-network :
$ docker network inspect my-network
[
{
"Name": "my-network",
...
"Containers": {
"container1": {
...
}
},
...
}
]
Supprimer un réseau
Dans cette dernière étape, vous apprendrez comment supprimer un réseau Docker lorsqu'il n'est plus nécessaire. Le nettoyage approprié des ressources inutilisées est une partie importante de la gestion efficace des environnements Docker.
Tâches
- Déconnectez
container2demy-network2s'il est toujours connecté. - Supprimez le réseau
my-network2à l'aide de la commandedocker network rm. - Vérifiez que
my-network2a bien été supprimé.
Exigences
- Effectuez toutes les opérations dans le répertoire
/home/labex/project. - Assurez-vous qu'aucun conteneur n'est connecté à
my-network2avant de le supprimer. - Utilisez la commande
docker network lspour vérifier la suppression du réseau.
Exemple
Après avoir supprimé my-network2, vous ne devriez plus le voir listé lorsque vous exécutez docker network ls :
NETWORK ID NAME DRIVER SCOPE
abcdef123456 my-network bridge local
ghijkl789012 bridge bridge local
mnopqr345678 host host local
stuvwx901234 none null local
Résumé
Félicitations pour avoir terminé le défi sur les bases du réseau Docker ! Vous avez navigué avec succès à travers les concepts essentiels du réseautage Docker, notamment :
- La création de réseaux Docker personnalisés.
- Le lancement de conteneurs au sein de réseaux spécifiques.
- Le test de la connectivité entre conteneurs.
- La connexion de conteneurs à plusieurs réseaux.
- La déconnexion de conteneurs des réseaux.
- La suppression de réseaux Docker.
Ces compétences constituent le socle d'une gestion efficace du réseau Docker et seront inestimables lorsque vous travaillerez avec des applications conteneurisées plus complexes. N'oubliez pas qu'une configuration réseau appropriée est cruciale pour l'isolation des conteneurs, la sécurité et la communication efficace entre les services.
Tout au long de ce défi, vous avez appris à créer des environnements isolés pour vos conteneurs, à permettre la communication entre eux et à gérer les connexions réseau de manière dynamique. Ces capacités vous permettent de concevoir des architectures réseau sophistiquées capables de s'adapter à l'évolution des besoins.
Alors que vous poursuivez votre parcours Docker, envisagez d'explorer des sujets réseau plus avancés tels que les réseaux overlay pour les configurations multi-hôtes, les plugins réseau, et la manière dont le réseautage Docker s'intègre aux plateformes d'orchestration comme Kubernetes. Vous pourriez également approfondir les concepts de sécurité réseau, comme l'utilisation de politiques réseau pour contrôler le flux de trafic entre les conteneurs.
Continuez à pratiquer ces compétences, et vous serez bien préparé pour concevoir et gérer des architectures réseau de conteneurs sophistiquées dans vos futurs projets. N'oubliez pas qu'un réseautage efficace est la clé pour construire des applications conteneurisées évolutives, sécurisées et performantes.



