Docker est actuellement l'une des technologies de conteneurisation les plus populaires, offrant un moyen léger d'empaqueter et de déployer des applications. Dans les applications pratiques, il est souvent nécessaire de migrer les conteneurs entre plusieurs hôtes pour améliorer la fiabilité et l'évolutivité des applications. Cependant, étant donné que chaque hôte possède son propre environnement réseau, la communication entre hôtes est un problème courant. Cet article explique comment utiliser Docker pour établir une communication entre hôtes.
1. Modèle de réseau Docker
Le modèle de réseau Docker comprend trois types de pilotes réseau : pont, hôte et superposition. Parmi eux, le pont est le plus courant, qui permet aux conteneurs Docker et aux hôtes de partager un seul réseau. Cependant, si vous souhaitez communiquer entre les hôtes, vous devez exposer le conteneur via le mappage des ports réseau. Le mode hôte utilise directement le réseau hôte, ce qui peut éviter le coût du mappage des ports, mais l'isolation du réseau entre les conteneurs s'aggrave. Le mode superposition est utilisé pour implémenter des réseaux distribués et peut communiquer entre plusieurs hôtes Docker.
2. Solution de communication entre hôtes Docker
Lors de l'utilisation du pilote réseau de pont, vous devez utiliser le mappage de ports pour réaliser une communication entre hôtes. : Sur le premier ordinateur, exécutez le conteneur sur l'hôte et exposez les ports à utiliser.
$ docker run -d --name container -p 8080:80 nginx
Dans la commande ci-dessus, nous démarrons un conteneur nommé conteneur et mappons le port du conteneur 80 au port hôte 8080.
Étape 2 : Sur le deuxième hôte, utilisez curl pour tester que vous pouvez accéder au port exposé par le conteneur.
$ curl http://<第一台主机IP地址>:8080
Dans la commande ci-dessus, nous utilisons l'outil curl pour faire une requête au port 8080 du premier hôte et obtenir l'interface de bienvenue par défaut du serveur Nginx.
À l'aide du pilote réseau superposéÉtape 1 : Activez le réseau de superposition sur chaque hôte du cluster.
$ docker network create -d overlay my-overlay-network
Dans la commande ci-dessus, nous avons créé un réseau superposé nommé my-overlay-network sur chaque hôte.
Étape 2 : Exécutez le service Web dans le conteneur et utilisez la connexion réseau superposée.
$ docker run -d --name web --network=my-overlay-network nginx
Dans la commande ci-dessus, nous avons démarré un conteneur nommé web et l'avons connecté au réseau my-overlay-network.
Étape 3 : Sur d'autres hôtes, utilisez curl pour tester que le service Web est accessible.
$ curl http://web
Dans la commande ci-dessus, nous utilisons l'outil curl pour faire une requête à l'hébergeur Web et obtenir l'interface de bienvenue par défaut du serveur Nginx.
3. Résumé
La technologie de conteneurisation est devenue l'un des moyens standards de développer et de déployer des applications dans les temps modernes. L'utilisation de Docker pour implémenter la communication entre hôtes est un problème souvent rencontré dans ce processus. Grâce à cet article, nous avons découvert la solution consistant à utiliser des pilotes réseau de pont et de superposition pour réaliser une communication entre hôtes. Parmi eux, le pilote réseau superposé a une meilleure évolutivité et convient à la mise en œuvre d'applications distribuées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!