2016-03-29 8 views
16

Ich liefere einen privaten Docker-Container in meiner Firma und möchte, dass meine Kollegen in unserem internen Netzwerk zugreifen können. Das Problem ist, dass mein Gastbetriebssystem OSX ist und ich daher nur über die 192.168.99.100 auf meine Anwendung zugreifen kann : 3000 Standard-IP von Docker-Maschine.Wie leite ich einen Docker-Computer-Port an meinen Host-Port auf OSX weiter?

Wie kann ich den docker-machine 3000 Port an meinen Host 80 Port weiterleiten?

Antwort

23

Zu diesem Zeitpunkt ist Docker Machine eine virtuelle Maschine, die unter VirtualBox auf Ihrem Computer ausgeführt wird. Um Ihren Anwendungsport verfügbar zu machen, müssen Sie den Port Ihrer virtuellen Maschine Ihrem Host-Port zuordnen.

Um dies zu erreichen gibt es zwei Möglichkeiten, aber bevor sicherstellen, dass Ihr Docker Maschine läuft gestoppt wird:

docker-machine stop default  # see PS below if docker machine isn't default 

Option 1 - Verwenden Sie die VirtualBox-Schnittstelle

  • öffnen VirtualBox-Manager
  • Wählen Sie Ihr Docker Machine VirtualBox Bild (zB: Standard)
  • Öffnen Sie Einstellungen -> Netzwerk -> Erweitert -> Port Forward
  • Fügen Sie Ihren App-Namen, um den gewünschten Host-Port (zB: 80) und den Gästehafen (zB: 3000)

Option 2 - Verwenden Sie die VirtualBox-Befehlszeile

einfach den folgenden Befehl mit Ihren eigenen Parametern ausführen:

VBoxManage modifyvm "dev" --natpf1 "myapp,tcp,,80,,3000" 

Abschließende Überlegungen

Jetzt können Sie Ihre Docker Maschine läuft starten:

docker-machine start default 
eval $(docker-machine env default) 

Dann einfach Ihre Anwendung Docker Container starten und testen Sie es http://localhost/ läuft.

S.S .: Der Name Ihres Docker-Computers darf nicht default lauten, in diesem Fall ändern Sie den Namen entsprechend.

+1

Aus all den Antworten, die ich untersucht habe, ist dies die, die mir geholfen hat. +1 – Tagc

+2

Es ist nicht notwendig, zuerst "docker-machine stop" auszuführen. Dies könnte sich seit der Veröffentlichung der Antwort geändert haben, aber es war zumindest in den letzten Monaten der Fall. – toddkaufmann

+0

Gibt es keine Möglichkeit, alle/alle Ports dem Docker Host in der VirtualBox zuzuordnen? Es macht viel Mühe, jedes Mal einen neuen Port zu erstellen! –