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>')
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:
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!