Maison > Opération et maintenance > Docker > Comment Docker implémente la communication entre hôtes

Comment Docker implémente la communication entre hôtes

PHPz
Libérer: 2023-04-10 15:04:29
original
2472 Les gens l'ont consulté

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

  1. Utiliser le pilote réseau de pont

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
Copier après la connexion

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
Copier après la connexion

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é
  1. À l'aide du pilote réseau superposé, vous pouvez connecter directement des conteneurs à partir de plusieurs hôtes Docker. Les étapes spécifiques sont les suivantes :

Étape 1 : Activez le réseau de superposition sur chaque hôte du cluster.

$ docker network create -d overlay my-overlay-network
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal