Wir alle wissen, dass Docker-Container voneinander isoliert sind und nicht aufeinander zugreifen können, aber was sollen wir tun, wenn es einige abhängige Dienste gibt? Im Folgenden werden drei Methoden zur Lösung des Problems des gegenseitigen Containerzugriffs beschrieben.
Methode 1, virtueller IP-Zugriff
Bei der Installation von Docker erstellt Docker standardmäßig ein internes Bridge-Netzwerk docker0. Jedem erstellten Container wird eine virtuelle Netzwerkkarte zugewiesen, und die Container können aufeinander zugreifen basierend auf IP.
[root@33fcf82ab4dd /]# [root@CentOS ~]# ifconfig ...... docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.17.0.1 netmask 255.255.0.0 broadcast 0.0.0.0 inet6 fe80::42:35ff:feac:66d8 prefixlen 64 scopeid 0x20<link> ether 02:42:35:ac:66:d8 txqueuelen 0 (Ethernet) RX packets 4018 bytes 266467 (260.2 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 4226 bytes 33935667 (32.3 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ......
Methode 2, Link
Parameter-Link hinzufügen, wenn der Container ausgeführt wird
Führen Sie den ersten Container aus
docker run -it --name centos-1 docker.io/centos:latest
Führen Sie den zweiten Container aus
[root@CentOS ~]# docker run -it --name centos-2 --link centos-1:centos-1 docker.io/centos:latest
--link: Der erste Centos-1 im Parameter ist der Containername und der zweite Centos-1 ist der definierte Container-Alias (verwenden Sie den Alias, um auf den Container zuzugreifen, im Allgemeinen wird der Alias standardmäßig verwendet). der Containername.
Die Testergebnisse lauten wie folgt:
[root@e0841aa13c5b /]# ping centos-1 PING centos-1 (172.17.0.7) 56(84) bytes of data. bytes from centos-1 (172.17.0.7): icmp_seq=1 ttl=64 time=0.210 ms bytes from centos-1 (172.17.0.7): icmp_seq=2 ttl=64 time=0.116 ms bytes from centos-1 (172.17.0.7): icmp_seq=3 ttl=64 time=0.112 ms bytes from centos-1 (172.17.0.7): icmp_seq=4 ttl=64 time=0.114 ms
Methode 3. Erstellen Sie ein Bridge-Netzwerk
1. Führen Sie nach der Installation von Docker den folgenden Befehl aus, um ein Bridge-Netzwerk zu erstellen: Docker Netzwerk Testnetz erstellen
Fragen Sie das neu erstellte Bridge-Testnetz ab.
2. Führen Sie den Container aus und stellen Sie eine Verbindung zum Testnet-Netzwerk her.
Verwendung: docker run -it --name
[root@CentOS ~]# docker run -it --name centos-1 --network testnet --network-alias centos-1 docker.io/centos:latest [root@CentOS ~]# docker run -it --name centos-2 --network testnet --network-alias centos-2 docker.io/centos:latest
3. Pingen Sie von einem Container zu einem anderen Container. Die Testergebnisse lauten wie folgt:
[root@fafe2622f2af /]# ping centos-1 PING centos-1 (172.20.0.2) 56(84) bytes of data. bytes from centos-1.testnet (172.20.0.2): icmp_seq=1 ttl=64 time=0.158 ms bytes from centos-1.testnet (172.20.0.2): icmp_seq=2 ttl=64 time=0.108 ms bytes from centos-1.testnet (172.20.0.2): icmp_seq=3 ttl=64 time=0.112 ms bytes from centos-1.testnet (172.20.0.2): icmp_seq=4 ttl=64 time=0.113 ms
Weitere verwandte Tutorials finden Sie in der Spalte Docker-Tutorial auf der chinesischen PHP-Website.
Das obige ist der detaillierte Inhalt vonSo greifen Sie im Docker auf Container zu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!