簡體   English   中英

Docker:如何從容器中訪問服務器的公共IP?

[英]Docker: How do I access my server's public IP from within a container?

我在Linux服務器上將不同的應用程序作為docker容器運行。 我可以使用SSL很好地訪問docker容器。 我正在使用的反向代理是traefik配置為代理子目錄而不是子域。

這些是我的容器:

應用程序A-可通過https://abc.xyz/a訪問

應用程序B-可通過https://abc.xyz/b訪問

從我的瀏覽器訪問它們時,這兩個應用程序都已啟動並正在運行並且可以正常工作。

現在,我需要將應用程序B嵌入到應用 程序A中 我知道我只能使用容器的內部IP(因為它們位於同一網絡上),但是, 應用A和本地瀏覽器都必須可以訪問嵌入式應用-因此,我需要使用面向公眾的IP / URL 。

現在的問題是我根本無法從應用程序A訪問https://abc.xyz/b 以下所有命令均在Application A docker容器內執行。

Ping正在工作:

$ ping abc.xyz
64 bytes from 150.150.150.150: seq=0 ttl=64 time=0.204 ms

因此DNS正在工作。

但是wget顯示:

$ wget https://abc.xyz/b
Connecting to abc.xyz (150.150.150.150)
(Nothing happens)

我根本無法弄清楚問題出在哪里。 是在traefik還是這是traefik限制?

一些調查研究后,我發現,它並沒有相關的dockertraefik的。 主機linux啟用了防火牆( ufw ),由於未正確配置,該防火牆阻止了來自docker容器的請求。

我現在允許從容器訪問它並且可以正常工作。

暫無
暫無

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

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