[英]Connect from Docker to Local Host
我有一個基本上運行Athena Tool Kit進行PDF生成的docker容器。 泊塢窗中的服務又通過以下URL調用NodeJs應用程序: -http:// localhost:3005 。
但是我在Docker控制台上看到一條消息:-
[GIN] 2019/08/23 - 22:24:46 | 500 | 1.850464ms | 192.168.99.1 | GET /convert
Error #01: Get http://localhost:3005/presentations/d0161fed-0ade-40a5-8dff-26696e553e96?id=d0161fed-0ade-40a5-8dff-26696e553e96&type=box-upload¶ms=: dial tcp 127.0.0.1:3005: connect: connection refused
captured errors:
Error #01: Get http://localhost:3005/presentations/d0161fed-0ade-40a5-8dff-26696e553e96?id=d0161fed-0ade-40a5-8dff-26696e553e96&type=box-upload¶ms=: dial tcp 127.0.0.1:3005: connect: connection refused.
Docker服務在http://192.168.99.100:8080本地運行。 它試圖從該地址呼叫127.0.0.1:3005。 當它出現時,我得到上面的錯誤。
我猜想這一定是允許從其他IP訪問本地主機。
請讓我知道需要做什么。
如我所見,您正在運行應用程序,第一個是patelsan/presentations-pdf-toolkit
容器的patelsan/presentations-pdf-toolkit
,第二個是主機中的nodejs應用程序。
這里的問題是,這兩個應用程序運行在兩個不同的網絡中,nodejs應用程序的主機網絡和docker bridge默認網絡作為容器的默認網絡。
否則,如Docker doc Docker網絡主機中所述 :
主機網絡驅動程序僅在Linux主機上工作,而Mac的Docker桌面,Windows的Docker桌面或Windows Server的Docker EE不支持該主機網絡驅動程序。
我有3種針對本地和產品環境的解決方案:
作為本地環境解決方案,您可以將patelsan/presentations-pdf-toolkit
容器分配給patelsan/presentations-pdf-toolkit
中的默認host
網絡,通過這種方式,兩個應用程序可以相互通信:
- run the `patelsan/presentations-pdf-toolkit` container:
- `docker network connect host container_name`
您可以使用編織網絡服務來創建虛擬網絡。
NP:
如果您的主機是Windows或Mac,我建議您也將nodejs應用程序容器化,這樣您就可以創建一個新的網絡,並且您的2個容器可以與該網絡通信。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.