2016-06-22 5 views
0

Ich habe einen Container mit mehr als einer Netzwerkschnittstelle. Ich möchte einen Port nur auf einer dieser Schnittstellen zum Host-Computer verfügbar machen. Kann das gemacht werden?Expose Host-Port für spezifische Container-Schnittstelle

Zum Beispiel:

services: 
    foo: 
    ports: 
     - "5000:5000" 
    networks: 
     - one 
     - two 
     - three 

networks: 
    one: 
    driver: bridge 
    two: 
    driver: bridge 
    three: 
    driver: bridge 

Ich will es so, dass Port 5000 auf dem Host an die Schnittstelle für das Netzwerk two beispielsweise genannt abgebildet wird. Jedoch sollten weder die one noch three Schnittstellen vom Host über diese Zuordnung erreichbar sein. Möglich?

Antwort

0

Ok, vielleicht bin ich völlig falsch oder veraltet, oder beides, aber ich denke du mischst Dinge hier.

Mit dem Teil "Ports" können Sie die Ports von Ihrem Container Ihrer physischen Maschine aussetzen, nicht Ihren "Docker-Netzwerken".

Die Netzwerke "eins, zwei, drei" sind alle Docker-Netzwerke, so dass alle Ihre Ports ohne Zuordnung verfügbar sind.

+0

Ich spreche über das Freilegen von Ports vom Container zum Host, nicht vom Container zu den Netzwerken. Der Vorbehalt ist, dass ich nur einen Port für nur eine der Container-Schnittstellen offen legen möchte; nicht alle drei. –

+0

Sie können die IP-Adresse angeben, nicht den Namen der Schnittstelle. Zum Beispiel: '192.168.1.7: 5000: 5000' –

+0

Wenn ich mich nicht irre, gibt das ip für eine der Hostschnittstellen an. Daher leitet der Host Anforderungen an diese IP-Adresse an diesem Port in den Container weiter. Ich möchte, dass der Host Anforderungen an eine bestimmte Netzwerkschnittstelle innerhalb des Containers weiterleitet. –