2017-09-17 154 views
1

我構建了一個查詢DynamoDB的Spring Boot REST API,我想配置一個或兩個作爲微服務運行的Docker容器:一個在本地運行DynamoDB,另一個運行REST API。我爲Spring Boot REST API配置了一個容器,但是當我調用API時,即使DynamoDB在localhost:8000上運行,也無法查詢本地DynamoDB。我得到的錯誤是:Spring Boot +與Docker本地連接的DynamoDB:連接到localhost:8000失敗

Unable to execute HTTP request: Connect to localhost:8000 [localhost/127.0.0.1] failed: Connection refused (Connection refused)

儘管得到那個消息,我可以用我的瀏覽器通過本地主機訪問DynamoDB。就好像Docker容器不允許API訪問localhost:8000,即使API容器在localhost:8080上運行。

我應該如何配置我的容器以使每個容器都作爲單獨的微服務運行?有沒有人見過類似的問題?

回答

1

本地主機一個容器內並沒有指向真機主機。從字面上看,當您在任何碼頭集裝箱內使用localhost時,它將指向容器本身。

泊塢窗提供了一種處理這種sitution兩種方式:

鏈接。這是不贊成使用的方式,在新項目中使用should be avoided

網絡。 Docker可以建立一個網絡,您可以通過DNS名稱(容器ID或容器名稱)訪問您的容器。

way described here中創建一個網絡,用DB容器的名稱替換localhost,然後就可以開始了。

+0

這對我不起作用。我使用一個容器在本地啓動DynamoDB服務,將其添加到網絡,然後啓動REST API並將其發送到同一網絡。但是我仍然得到與上面相同的錯誤。 – acs254

+0

您是否更改了彈簧引導容器中的連接網址? –