Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So greifen Sie im Docker auf Container zu

So greifen Sie im Docker auf Container zu

尚
Original
2020-03-24 16:09:355311Durchsuche

So greifen Sie im Docker auf Container zu

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.

So greifen Sie im Docker auf Container zu

2. Führen Sie den Container aus und stellen Sie eine Verbindung zum Testnet-Netzwerk her.

Verwendung: docker run -it --name ---network --network-alias

[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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn