Fernzugriff auf den Webserver im Andock-Container

8

Ich habe begonnen, docker für dev zu verwenden, mit dem folgenden Setup:

  • Host-Rechner - Ubuntu-Server.
  • Docker Container - Webapp mit Tomcat Server (mit https).

Soweit Host-Container-Zugriff möglich ist, funktioniert alles gut. Allerdings kann ich nicht von einem Remotecomputer aus auf die Webanwendung des Containers zugreifen (obwohl er sich immer noch im selben Netzwerk befindet).

Beim Ausführen

%Vor%

Ausgabe ist wie erwartet, so Docker Port Bindung scheint gut.

%Vor%

Irgendwelche Ideen?

Danke!

    
tomper 23.02.2014, 15:36
quelle

4 Antworten

9

Ich habe herausgefunden, was ich verpasst habe. Hier ist ein einfacher Ablauf für den Zugriff auf Docker-Container-Webapps von Remote-Computern:

Schritt 1 : Bindet physische Host-Ports (z. B. 22, 443, 80, ...) an die virtuellen Ports des Containers. mögliche Syntax:

%Vor%

(siehe Andock-Dokumente für die Portumleitung mit allen Optionen)

Schritt 2 : Leitet den physischen Port des Hosts zum zugewiesenen virtuellen Port des Containers um. Mögliche (Linux) -Syntax:

%Vor%

Das sollte den grundlegenden Anwendungsfall abdecken.

Viel Glück!

    
tomper 24.02.2014, 06:58
quelle
3

Korrigiere mich, wenn ich falsch liege, aber soweit ich weiß, erstellt docker host ein privates Netzwerk für seine Container, das von außen nicht zugänglich ist. Das heißt, Ihre beste Wette wäre wahrscheinlich der Zugriff auf den Container unter {host_IP}: {mapped_port}.

    
Evgeny Chernyavskiy 23.02.2014 17:02
quelle
1

Wenn Ihr Container mit einer Dockerdatei mit einer EXPOSE -Anweisung erstellt wurde, z. EXPOSE 443 , dann können Sie den Container mit der Option -P starten (wie in "publish" oder "public"). Der Port wird für Verbindungen von Remote-Computern zur Verfügung gestellt:

%Vor%

Wenn Sie keine Dockerfile verwendet haben oder keine EXPOSE -Anweisung (das sollte!) haben, können Sie auch eine explizite Portzuordnung vornehmen:

%Vor%

In beiden Fällen wird das Ergebnis ein öffentlich zugänglicher Port sein:

%Vor%

Last but not least können Sie die Portnummer erzwingen, wenn Sie Folgendes benötigen:

%Vor%

In diesem Fall wird die Verbindung zu Ihrer Docker-Host-IP-Adresse an Port 8442 den Container erreichen.

    
jpetazzo 26.02.2014 19:04
quelle
0

Es gibt einige Alternativen, wie Sie von einem externen Gerät (im selben Netzwerk) auf Docker-Container zugreifen können. Weitere Informationen finden Sie in diesem Post Ссылка

    
Eduardo Nunes 03.05.2015 18:03
quelle

Tags und Links