从主机到容器的cURL工作,但从容器到容器不

时间:2016-12-20 20:43:57

标签: curl docker digital-ocean

标题几乎说明了一切,但让我给出一些背景信息。

我有一个运行一个容器的MySQL实例,一个运行在另一个容器中的API,以及一个运行在第三个容器中的脚本。该脚本命中(或应该命中)在第二个中运行的API。这些都在同一台物理机器上(在DigitalOcean上)。

我在Dockerfile中公开了我们正在使用的端口(8080),并在运行时使用-p 8080:8080为API公开。我的脚本正确指向API IP。

在其他环境(AWS,RaspPI)中,此设置可正常运行。但是,在DigitalOcean上,它根本不起作用。我的脚本尝试命中数据库API失败了。

奇怪的是,从主机到API端点的cURLing工作正常,因此API本身正在运行。但是,使用docker exec从脚本docker容器内部进行操作会导致每次都超时 - 这与我在脚本中遇到的问题相同。

我唯一猜测的是,它与Docker Droplet的DigitalOcean配置设置有关,或者Docker具有我缺少的容器间通信配置。

TL; DR:来自主机的cURL - > Docker容器API有效。来自同一台机器上的Docker容器的cURL - > Docker容器API没有。

无论如何,如果你们中的任何人想要更多信息,请不要犹豫:)干杯!

0 个答案:

没有答案