2017-09-17 157 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

您是否更改了弹簧引导容器中的连接网址? –