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

标题几乎说了一切,但让我给一些上下文。

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

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

在其他环境(AWS,RaspPI)中,此设置正常工作。 但在DigitalOcean上,这根本不起作用。 我的脚本试图击中数据库API只是失败。

奇怪的是,从主机到API端点的连接工作正常,所以API本身正在工作。 然而,使用docker exec从脚本docker容器内部inputcURLing会导致每次都有一个超时 – 我在脚本中遇到同样的问题。

我唯一的两个猜测是,这与DigitalOcean的Dockerconfiguration设置有关,或者Docker具有我缺less的容器间通信configuration。

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

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