2016-05-16 9 views
0

Ich verfolge diese beiden Tutorials ein wenig über Docker Vernetzung zu verstehen:Docker können noch offene Ports mit und ohne --link Flag gesetzt

Im ersten Lernprogramm wird angegeben, dass der Container keine Ports freigibt, indem keine -p- oder -P-Flags verwendet werden.

$ docker run --name redis-server -d <your username>/redis 

Und wenn Sie einen anderen Container ausgeführt wird, verwendet es die --link-Flag auf "redis" Container:

$ docker run --name redis-client --link redis:db -i -t ubuntu:14.04 /bin/bash 

Und auf diese Weise ich von redis-Client Container redis-Server verbinden kann Container, weil sie verknüpft sind. Aber während ich mit anderen Konfigurationen experimentiere, führe ich einen anderen Container, nennen wir es redis-client-2 - gleich nachdem ich gestoppt und entfernt redis-client Container - das nicht die --link-Flag verwendet:

$ docker run --name redis-client-2 -i -t ubuntu:14.04 /bin/bash 

Und ich merkte, dass auch ohne die --link-Flag I auf redis-Server verbinden kann des Containers redis Server von redis-client-2

Meine Frage ist, bin ich Missverständnis der Konzept von --link und offengelegten Ports auf Docker? Warum kann ich immer noch eine Verbindung zu Server Container mit oder ohne die --link-Flag herstellen?

Dank im Voraus

Antwort

2

Docker Behälter auf demselben Netzwerk Docker (falls keine Einstellung ist, default) als zueinander frei miteinander kommunizieren. --link ist ein Restmerkmal aus der Zeit der erstklassigen Docker-Vernetzung.

Die -p & -P Optionen beziehen sich nur Ports außerhalb des Docker Netzwerk (d.h. an den Host) Belichten und hat keinen Einfluss auf Behälter-zu-Behälter-Kommunikation.

Verwandte Themen