打開 Docker 容器的端口

打開 Docker 容器的端口

我從 docker 開始,只是嘗試使用 Web 應用程式運行 Docker 容器,並嘗試在我們的本地網路中查看它。

我在 VirtualBox 中安裝了全新的 Ubuntu 14 LTS,沒有任何額外的服務(沒有 GUI、沒有 LAMP、沒有 OpenSSH...),然後只安裝了 Docker:

curl -sSL https://get.docker.com/ | sh

我運行了一個 Odoo (OpenERP) 容器(之前運行 postgree 容器)

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

很簡單。看起來它正在工作。我沒有安裝瀏覽器,但我透過 telnet 連接到 127.0.0.1:8069 並發送 GET 請求。它回答了。

現在我需要從外部存取該服務。如何?

  • VirtualBox 網路介面配置為橋接器。

  • 我在Ubuntu eth0介面中設定了固定IP(192.168.0.150)。

  • UFW 已停用

  • 我可以從其他計算機 ping 到 192.168.0.150,ubuntu 會回答。

  • 但瀏覽器在 192.168.0.150:8069 處沒有偵測到任何內容

  • 無法透過 telnet 連接到 192.168.0.150:8069

我想這一定是連接埠重定向或介面映射的一些配置。請問你能幫幫我嗎? :)

答案1

最後我找到了答案。問題是連接埠分配。如果您設定:

-p 127.0.0.1:8069:8069

您隻公開本地主機。如果您只需要本地服務並且只想從伺服器存取它,那麼這是一個很好的安全選項。但是,如果您想將連接埠公開給所有接口,只需鍵入:

-p 8069:8069

然後,你就可以透過eth0介面透過網路存取該服務了:)

相關內容