Heim > Artikel > Betrieb und Instandhaltung > So implementieren Sie die Kommunikation zwischen Dockern
In der modernen Softwareentwicklung hat sich Docker zu einer sehr beliebten Virtualisierungstechnologie entwickelt, die es Entwicklern ermöglicht, in verschiedenen Umgebungen zu entwickeln, zu testen und bereitzustellen. Ein wichtiges Merkmal von Docker besteht darin, dass es auf verschiedenen Hosts ausgeführt werden kann. Daher ist die Implementierung der Kommunikation zwischen Dockern in einer Umgebung mit mehreren Hosts zu einem heißen Thema geworden.
In diesem Artikel wird vorgestellt, wie die Kommunikation zwischen verschiedenen Docker-Hosts implementiert wird, einschließlich:
1. Das Konzept und die Eigenschaften des Docker-Netzwerks
In Docker ist das Netzwerk ein unabhängiges Subsystem, das Kommunikationsfunktionen für verschiedene Container bereitstellt. Ein wichtiges Merkmal des Docker-Netzwerks besteht darin, verschiedene Container in verschiedenen Netzwerken zu isolieren, und die Kommunikation zwischen Containern muss über das Netzwerk erfolgen. Zu den gängigen Docker-Netzwerktypen gehören:
In Docker kann die Kommunikation zwischen verschiedenen Containern auch über maßgeschneiderte Netzwerke erreicht werden.
2. Kommunikationsmethode von Docker-Containern, die auf demselben Host ausgeführt werden
Die Kommunikation zwischen Docker-Containern, die auf demselben Host ausgeführt werden, ist am einfachsten zu erreichen. Standardmäßig ermöglicht das Docker-Bridge-Netzwerk die Kommunikation zwischen allen Containern über seine IP-Adresse. Daher muss die Kommunikation zwischen verschiedenen Containern auf demselben Host nur über die IP-Adresse des Containers erfolgen.
In Docker können Sie den folgenden Befehl verwenden, um die IP-Adresse des laufenden Containers anzuzeigen:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <container_name>
Der Beispielcode für die Kommunikation zwischen Docker-Containern auf demselben Host lautet wie folgt:
import requests response = requests.get('http://<container_ip>:<port>/<api_endpoint>')
3. Führen Sie Docker-Container auf verschiedenen aus Hosts Kommunikationsmethode
Wenn verschiedene Docker-Container auf unterschiedlichen Hosts ausgeführt werden, können sie nicht über die IP-Adresse des Containers kommunizieren, da sie nicht mehr zum selben Netzwerk gehören. Daher müssen für die Kommunikation zwischen ihnen andere Mittel eingesetzt werden.
In Docker kann die Containerkommunikation auf verschiedenen Hosts auf die folgenden zwei Arten erreicht werden:
Der Beispielcode für die Verwendung von Port Mapping lautet wie folgt:
import requests response = requests.get('http://<host_ip>:<mapped_port>/<api_endpoint>')
Wenn Sie das Overlay-Netzwerk verwenden, um Container auf verschiedenen Hosts zu verbinden, müssen Sie die folgenden Schritte ausführen:
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>
;Starten Sie einen Container im Overlay-Netzwerk: docker service create - -name <service_name> --network <network_name>
.
import requests response = requests.get('http://<container_ip>:<port>/<api_endpoint>')4. Verwenden Sie Docker Compose, um die Kommunikation mehrerer Container zu verwalten. Docker Compose ist ein Tool zur Verwaltung mehrerer Docker-Container YAML-Dateien Zum Definieren der Startmethoden und Parameter mehrerer Container. In Docker Compose kann die Kommunikationsmethode zwischen Containern in YAML-Dateien konfiguriert werden. Das Folgende ist ein YAML-Beispielcode für die Verwaltung der Kommunikation zwischen mehreren Containern mit 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:Im obigen Beispiel sind der Datenbankcontainer und der Webcontainer mit demselben virtuellen Netzwerk verbunden, indem ein Netzwerk namens „my-network“ definiert wird. und verwenden Sie Port Mapping, um den 3306-Port von MySQL dem 3306-Port des Hosts zuzuordnen. Zusammenfassung🎜🎜Durch die Einleitung dieses Artikels sollten Sie die Kommunikationsmethode zwischen verschiedenen Docker-Hosts beherrschen. Für die Containerkommunikation auf demselben Host müssen Sie nur die IP-Adresse des Containers verwenden. Für die Containerkommunikation auf verschiedenen Hosts können Sie Port Mapping- und Overlay-Netzwerke verwenden. Darüber hinaus erleichtert die Verwendung von Docker Compose die Verwaltung der Kommunikation zwischen mehreren Containern. 🎜
Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Kommunikation zwischen Dockern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!