使用Docker的Spring Boot + DynamoDB Local:连接到localhost:8000失败

时间:2017-09-17 05:02:03

标签: java spring docker amazon-dynamodb

我构建了一个查询DynamoDB的Spring Boot REST API,我想配置一个或两个作为微服务运行的Docker容器:一个在本地运行DynamoDB,另一个运行REST API。我有一个为Spring Boot REST API配置的容器,但是当我调用API时,即使DynamoDB在localhost:8000上运行,它也无法查询本地DynamoDB。我得到的错误是:

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

尽管收到了这条消息,但我可以使用浏览器通过localhost访问DynamoDB。就好像Docker容器不允许API访问localhost:8000,即使API容器在localhost:8080上运行。

我应该如何配置我的容器,使每个容器作为单独的微服务运行?有没有人见过类似的问题?

2 个答案:

答案 0 :(得分:1)

容器内的

localhost 并不指向真实的计算机主机。字面上,当您在任何docker容器中使用 localhost 时,它将指向容器本身。

Docker提供了两种处理此情境的方法:

链接。在新项目中,这是不推荐使用的方式和should be avoided

网络。 Docker可以建立一个网络,您可以通过DNS名称(容器ID或容器名称)访问容器。

way described here中创建一个网络,用数据库容器名称替换localhost,您就可以开始了。

答案 1 :(得分:0)

默认情况下,容器非常孤立并在不同的网络中运行。您必须使用 - - link setting:

将DinamoDB容器链接到Spring Boot容器

https://deis.com/blog/2016/connecting-docker-containers-1/