Maison > Article > Opération et maintenance > Comment implémenter la communication entre Dockers
Dans le développement de logiciels modernes, Docker est devenu une technologie de virtualisation très populaire, qui permet aux développeurs de développer, tester et déployer dans différents environnements. Une caractéristique importante de Docker est qu'il peut fonctionner sur différents hôtes. La manière de mettre en œuvre la communication entre Dockers dans un environnement multi-hôtes est donc devenue un sujet brûlant.
Cet article présentera comment mettre en œuvre la communication entre différents hôtes Docker, notamment :
1. Le concept et les caractéristiques du réseau Docker
Dans Docker, le réseau est un sous-système indépendant qui fournit des capacités de communication pour différents conteneurs. Une caractéristique importante du réseau Docker est d'isoler différents conteneurs dans différents réseaux, et la communication entre les conteneurs doit être réalisée via le réseau. Les types de réseau Docker courants incluent :
Dans Docker, la communication entre différents conteneurs peut également être réalisée via des réseaux personnalisés.
2. Méthode de communication des conteneurs Docker s'exécutant sur le même hôte
La communication entre les conteneurs Docker s'exécutant sur le même hôte est la plus simple à réaliser. Par défaut, le réseau Docker Bridge permet la communication entre tous les conteneurs via son adresse IP. Par conséquent, la communication entre différents conteneurs sur le même hôte doit uniquement être effectuée en utilisant l'adresse IP du conteneur.
Dans Docker, vous pouvez utiliser la commande suivante pour afficher l'adresse IP du conteneur en cours d'exécution :
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <container_name>
L'exemple de code pour la communication entre les conteneurs Docker sur le même hôte est le suivant :
import requests response = requests.get('http://<container_ip>:<port>/<api_endpoint>')
3. Exécutez les conteneurs Docker sur différents hosts Méthode de communication
Lorsque différents conteneurs Docker s'exécutent sur différents hôtes, ils ne peuvent pas communiquer via l'adresse IP du conteneur car ils n'appartiennent plus au même réseau. Il faut donc utiliser d’autres moyens pour communiquer entre eux.
Dans Docker, la communication des conteneurs sur différents hôtes peut être réalisée des deux manières suivantes :
L'exemple de code pour utiliser le mappage de ports est le suivant :
import requests response = requests.get('http://<host_ip>:<mapped_port>/<api_endpoint>')
Lorsque vous utilisez le réseau Overlay pour connecter des conteneurs sur différents hôtes, vous devez effectuer les étapes suivantes :
docker swarm init
;docker swarm init
;docker network create -d overlay <network_name>
;docker service create --name <service_name> --network <network_name> <image_name>
docker network create -d overlay <network_name>
;Démarrez un conteneur dans le réseau Overlay : docker service create - -name <service_name> --network <network_name>
import requests response = requests.get('http://<container_ip>:<port>/<api_endpoint>')4. Utilisez Docker Compose pour gérer la communication de plusieurs conteneurs Docker Compose est un outil de gestion de plusieurs conteneurs Docker. Fichiers YAML Pour définir les méthodes de démarrage et les paramètres de plusieurs conteneurs. Dans Docker Compose, la méthode de communication entre les conteneurs peut être configurée dans des fichiers YAML. Ce qui suit est un exemple de code YAML pour gérer la communication entre plusieurs conteneurs à l'aide de Docker Compose :
version: '3' services: db: image: mysql:5.7 environment: MYSQL_DATABASE: 'mydb' MYSQL_USER: 'root' MYSQL_PASSWORD: 'root' MYSQL_ROOT_PASSWORD: 'root' volumes: - ./db:/var/lib/mysql ports: - '3306:3306' networks: - my-network web: build: . ports: - "5000:5000" volumes: - .:/code networks: - my-network depends_on: - db networks: my-network:Dans l'exemple ci-dessus, le conteneur de base de données et le conteneur Web sont connectés au même réseau virtuel en définissant un réseau nommé "mon-réseau". et utilisez le mappage de ports pour mapper le port 3306 de MySQL au port 3306 de l'hôte. Résumé🎜🎜Grâce à l'introduction de cet article, vous devriez maîtriser la méthode de communication entre les différents hôtes Docker. Pour la communication de conteneur sur le même hôte, il vous suffit d'utiliser l'adresse IP du conteneur ; pour la communication de conteneur sur différents hôtes, vous pouvez utiliser les réseaux de mappage de ports et de superposition. De plus, l'utilisation de Docker Compose facilite la gestion de la communication entre plusieurs conteneurs. 🎜
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!