簡體   English   中英

從Docker連接到本地主機

[英]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&params=: 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&params=: 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種針對本地和產品環境的解決方案:

  1. 本地環境:

作為本地環境解決方案,您可以將patelsan/presentations-pdf-toolkit容器分配給patelsan/presentations-pdf-toolkit中的默認host網絡,通過這種方式,兩個應用程序可以相互通信:

 - run the `patelsan/presentations-pdf-toolkit` container:
 - `docker network connect host container_name`
  1. 生產環境:

您可以使用編織網絡服務來創建虛擬網絡。

NP:

如果您的主機是Windows或Mac,我建議您也將nodejs應用程序容器化,這樣您就可以創建一個新的網絡,並且您的2個容器可以與該網絡通信。

暫無
暫無

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

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