簡體   English   中英

是否有可能從本地網絡內的另一台機器訪問 docker-compose 容器?

[英]Is there a possibility to access a docker-compose container from another machine inside the local network?

我正在使用 WSL2 Ubuntu 與 Docker CE 和 Docker-Compose。

我想從我的本地網絡(有時是相同的,有時是其他機器)訪問我正在運行的容器(主要是 Apache/MySQL/Wordpress 容器)。

例如:

PC1:192.168.178.20

PC2:192.168.178.21

在 PC1 上是 Windows + WSL2-Ubuntu 和所有 docker 容器。

我想從 Windows 瀏覽器(Chrome)訪問容器,也想從 PC2 的瀏覽器(也為 Chrome,對於 mac)訪問容器。

這甚至可能嗎? 如果是,如何?

我讓 webpack 與 WSL2 的熱重載一起工作,但這似乎很難,我不知道從哪里開始。

是否可以在我的路由器中為特定容器添加 DNS 名稱? 例如,如果您調用“example.test”,我的路由器會從 Docker-Box 轉發到 IP?

有幾個解決方案,有些比其他更好。

  1. 找到您的容器映射到主機 (PC1) 的端口號,並確保您可以通過該方式瀏覽。 然后拿同樣的URL到PC2上試一下,看看能不能用。 確保您使用的是完全限定域名或 IP 地址,以便解析找到 PC1。

  2. 找到您的容器向主機 (PC1)公開的端口號,並確保您可以通過該方式瀏覽。 重復上述過程。

  3. 使用反向代理。 我有偏見,會說使用 Traefik 是因為它的配置相對簡單(與 nginx 相比)。 它只是另一個容器。 它使用規則(URL Header、端口號、路徑等的組合)將傳入連接路由到服務/容器。 在您的情況下,您將創建一條規則 URL Header (webapp1.corp.com) 和端口號 (80) 並將其路由到您正在運行的特定容器。 然后從任一計算機瀏覽器輸入http://webapp1.corp.com連接將被路由到特定容器。 這是一個非常簡單的答案,更復雜,但您應該了解要點。

您提到您正在運行多個容器,因此如果您還沒有使用它,我建議您使用 docker-compose。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM