0

我使用 docker-compose 来链接容器。结构如下所示:

version: '3.3'
services:
  db_service:
    ...
  api_service:
    ...
  ...

我知道 Nginx 可以使用以下代码访问其他容器的 IP:

location /api/ {
    proxy_pass      http://api_service:5000;
}

我想将这个问题扩展到一个具体的例子会受到赞赏。

在我的情况下,我想连接到位于另一个容器中的数据库。数据库的 IP 由下式给出:$ docker inspect my_db | grep "IPAddress"并且在不同的运行时它不是恒定的。下面的代码目前有效,但我正在寻找更强大的东西,它可以抵抗简单的重启,并且在周期的每个阶段(开发、测试、部署)都可以理想地重用。

conn = psycopg2.connect("dbname=postgres user=postgres password=postgres host=172.25.0.2")
4

1 回答 1

1

如您所说,您可以通过服务名称访问它。只要记住添加链接部分和depends_on。然后您将在 hosts 文件中解析 db_service。

于 2019-02-07T15:42:13.177 回答