如何将 docker 容器中的 python 应用与 运行 docker 容器与 url 连接

how to connect python app in docker container with running docker container with url

我在 python 中有一个应用程序,我想 运行 在 docker 容器中,它有一行:

h2o.connect(ip='127.0.0.1', port='54321')

h2o 服务器 运行 正在 docker 容器中,它始终具有不同的 ip。一次在 172.19.0.5 上启动,另一次在 172.19.0.3 上启动,有时在 172.17.0.3 上启动。 所以它总是随机的,我无法连接 python 应用程序。 我试图将 h2o 服务器的端口暴露给本地主机,然后连接 python(上面的代码),但它不起作用。

您不能通过 IP 地址连接两个 docker 容器。相反,您想使用 docker 内部网络别名:

version: '3'
services:
  server:
    ...
    depends_on:
      - database
  database:
    ...
    expose:
      - 54321:54321

然后您可以将服务器中的连接定义为: h2o.connect(ip='127.0.0.1', port='54321')