从不在Docker容器和另一台机器中的其他应用程序在一台机器上调用或与Docker容器通信

时间:2019-05-29 02:00:58

标签: linux docker flask

我的docker容器在一台运行着机器A的机器上运行。我有另一台由烧瓶服务器组成的机器B。我想从机器B中的烧瓶服务器调用机器A中的Docker容器/进行通信。我没有在任何Docker容器中运行我的烧瓶服务器。我实际上对Docker来说还很陌生,所以我不确定我们是否能够实现它。

2 个答案:

答案 0 :(得分:0)

我不确定您要对Flask服务器中的docker容器做什么,但是我假设它是您要在Flask服务器中使用的API或在Docker容器中运行的某些服务。您可以通过使用运行了Docker容器的机器A的IP来执行此操作,此外,您还需要将Docker容器的端口绑定到主机的(机器A)端口。这样,每当您尝试通过该特定端口访问主机时,您将改为调用容器端口。 如果要在正在运行的容器中执行命令,则有两种方法可以执行此操作,首先,可以SSH到容器,其次可以SSH到主机,然后使用docker exec。但是,由于您正在尝试从Flask服务器进行通信,因此我认为可能并非如此。

答案 1 :(得分:0)

您可以直接从其他计算机访问容器中的http服务。

例如

machineA上的容器是这个:

docker run -idt -p 9000:80 nginx

然后,您在machineB的flask应用程序中,只需使用:

requests.get("http://your_machine_a_ip:9000")

获得所需的东西。

请记住,对于容器,您需要将http端口公开给主机,以便其他计算机可以访问它。