
Ich beginne mit Docker und versuche gerade, einen Docker-Container mit einer Webanwendung auszuführen und ihn in unserem lokalen Netzwerk anzuzeigen.
Ich habe ein neues Ubuntu 14 LTS in VirtualBox installiert, ohne zusätzliche Dienste (keine GUI, kein LAMP, kein OpenSSH ...), und dann nur Docker installiert:
curl -sSL https://get.docker.com/ | sh
und ich habe einen Odoo (OpenERP)-Container ausgeführt (vorher habe ich einen Postgree-Container ausgeführt)
docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo --name db postgres
docker run -p 127.0.0.1:8069:8069 --name odoo --link db:db -t odoo
Ganz einfach. Es sieht so aus, als ob es funktioniert. Ich habe keinen Browser installiert, aber ich habe mich über Telnet mit 127.0.0.1:8069 verbunden und eine GET-Anfrage gesendet. Sie wurde beantwortet.
Nun muss ich von außerhalb auf den Dienst zugreifen. Wie?
Die VirtualBox-Netzwerkschnittstelle ist als Bridge konfiguriert.
Ich habe in der Ubuntu eth0-Schnittstelle eine feste IP (192.168.0.150) eingestellt.
UFW ist deaktiviert
Ich kann von anderen Computern aus einen Ping an 192.168.0.150 senden und Ubuntu antwortet.
Aber der Browser erkennt nichts bei 192.168.0.150:8069
Verbindung über Telnet zu 192.168.0.150:8069 nicht möglich
Ich vermute, es muss eine Konfiguration der Portumleitung oder Schnittstellenzuordnung sein. Können Sie mir bitte helfen? :)
Antwort1
Endlich habe ich die Antwort gefunden. Das Problem war die Portzuweisung. Wenn Sie Folgendes einstellen:
-p 127.0.0.1:8069:8069
Sie geben NUR localhost frei. Dies ist eine großartige Sicherheitsoption, wenn Sie nur einen lokalen Dienst benötigen und nur vom Server aus darauf zugreifen möchten. Wenn Sie den Port jedoch ALLEN Schnittstellen zugänglich machen möchten, geben Sie einfach Folgendes ein:
-p 8069:8069
Anschließend können Sie über das Netzwerk über die Schnittstelle eth0 auf den Dienst zugreifen :)