2016-03-24 7 views
1

Ich habe zwischen diesen beiden IP-Adressen verwirrt:Welchen Unterschied zwischen diesen beiden Docker-IPs?

$ docker-machine ls 
NAME  ACTIVE URL   STATE  URL       SWARM DOCKER ERRORS 
default *  virtualbox Running tcp://192.168.99.100:2376   v1.10.3 

und:

$ docker inspect aa769fbe3a3a | grep IPAddress | cut -d '"' -f 4 

172.17.0.2 

ich im Docker doc gesucht, aber keine Antwort finden können.

Kann mir jemand erklären, wofür die IP 192.168.99.100 verwendet wird?
Und was für die andere IP 172.17.0.2 verwendet?

Antwort

4

Die erste ist die IP des Linux-Host, der die Andockfensters Daemon läuft

Die zweite ist die IP des Behälters aa769fbe3a3a using the bridge network eth0 to docker0.

Ich zum Beispiel "Docker Networking":

http://sdnhub.org/wp-content/uploads/2014/11/docker0-network.png

Auch "Concerning Containers' Connections: on Docker Networking":

Wenn der Docker Service-Daemon startet, konfiguriert es eine virtuelle Brücke, docker0, auf dem Host-System (Abbildung unten).
Docker wählt ein auf dem Host nicht verwendetes Subnetz aus und weist der Bridge eine freie IP-Adresse zu. Der erste Versuch ist 172.17.42.1/16, aber das könnte anders sein, wenn es Konflikte gibt.
Diese virtuelle Brücke behandelt alle Host-Container-Kommunikation.

http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/large-550px-centered/u1002061/11833f1.png

Wenn Docker startet einen Container, die standardmäßig erstellt es eine virtuelle Schnittstelle auf dem Host mit einem eindeutigen Namen, wie veth220960a, und eine Adresse im gleichen Subnetz.
Diese neue Schnittstelle wird mit der Schnittstelle eth0 am Container selbst verbunden.
Um Verbindungen zuzulassen, werden Iptables-Regeln hinzugefügt, die eine DOCKER-benannte Kette verwenden. NAT (Network Address Translation, Netzwerkadressübersetzung) wird zum Weiterleiten von Datenverkehr an externe Hosts verwendet, und der Hostcomputer muss so eingerichtet sein, dass er IP-Pakete weiterleitet.

+0

Dank VonC, also wenn ich verstanden, wenn ich das Ergebnis eines laufenden Behälter zu sehen, locken möchte ich zu tun haben: $ -i kräuseln 192.168.99.100:49160 – user1034127

+0

@ user1034127 ja, wenn Sie zugeordnet haben, dass Container-Port auf Docker ausführen (https://docs.docker.com/engine/reference/run/#expose-incoming-ports): -p 49160: 49160 – VonC

+0

wofür wird die Container-IP 172.17.0.2 verwendet? Was kann ich damit machen? Vielen Dank. – user1034127

Verwandte Themen