2017-11-03 8 views
1

Sagen, ich habe mywebsite.com auf meinem Ubuntu-Server zeigen.Punkt Web-Anfrage an Docker Container läuft in Ubuntu

Auf meinem Ubuntu-Server läuft ein Docker-Container.

Ist es möglich, Anfragen an meinen Ubuntu-Server zu der Anwendung zu richten, die durch den Andock-Container verfügbar gemacht wird?

Ich bin nicht ganz sicher, was Sie für diese Frage suchen. Ich würde mir vorstellen, ich müsste Nginx als Proxy oder etwas?

Ich verstehe, dass es vielleicht bessere Server Setups, ich frage mich, ob dieser bestimmte möglich ist.

Antwort

1

Ja, es ist möglich. Sie benötigen:

  • Eine Anwendung oder ein Server innerhalb des Containers laufen, die auf einen oder mehrere Ports
  • hört
  • Ihr Docker Behälter mit dem richtigen Befehl Starten Sie den Port (s) Ihre Behälter, um sicherzustellen, abhört wird veröffentlicht und gebunden an einen Port auf dem Host-Rechner
  • alle Firewall-Regeln
  • entsprechend konfiguriert sicherzustellen Stellen Sie sicher, nichts anderes auf dem Host-Port zuhörte (Ihr docker Befehl mit einer „Adresse verwenden“ wird die Fehlerfehler)

Als Beispiel können Sie dafür Apache verwenden.

Mit einem einfachen Dockerfile:

FROM httpd:2.4 
RUN echo "<h1>It works!</h1>" > /usr/local/apache2/htdocs/index.html 

und Befehle:

# Builds my Dockerfile above and tags the image as "test" 
docker build . -t test 
# Creates a container with the default command running, which 
# starts Apache. Publishes (-p) port 80 inside the container and 
# binds it to port 80 on the host machine 
docker run --rm -p 80:80 test 

Wenn Sie führen dies vor Ort (alle Einsprüche siehe oben) Sie http://localhost besuchen können und die Meldung oben sehen. Der Schlüssel ist die -p Flag, das Port 80.

https://docs.docker.com/engine/reference/commandline/run/

Es gibt eine Anzahl von Verwendungen für nginx veröffentlicht. Sie können nginx als die Anwendung verwenden, die statische Seiten rendern/bereitstellen bereitstellt. Sie können nginx auch als Proxy zwischen dem Clientcomputer (Webbrowser usw.) und einem anderen laufenden Prozess (in einem anderen Container oder einem anderen Server) verwenden. Wenn Sie zusätzliche Details über das, was Sie tatsächlich erreichen wollen, zur Verfügung stellen, kann ich Ihnen vielleicht in die richtige Richtung zeigen.

Verwandte Themen