如何在数字海洋液滴中远程连接到docker中运行的数据库?

问题描述 投票:0回答:0

我在托管在数字海洋水滴上的 docker 容器中运行气流和 postgres。 Airflow 成功运行并将数据写入我的 postgres 数据库。当我 ssh 进入我的数字海洋水滴时,我可以

docker exec -it <mycontainer> bash
然后我可以运行 psql 并查询我的数据库。我通过检查容器知道它已启动并正在运行,并且我已经公开了端口 5433。我知道没有任何防火墙问题,因为我只需转到液滴 ID 地址和正确的端口。

我想做的是从我的本地机器访问数据库,以便能够运行查询和进行分析。但是,我找不到连接数据库的方法。理想情况下,我会在使用 SQL 编辑器 (DBeaver) 时进行连接。

我花了 4 个小时试图让连接正常工作,我已经用尽了所有资源(ChatGPT 没有帮助!)。我能够在 DBeaver 中成功创建一个 ssh 隧道,但我仍然无法获得连接。我收到这个错误,我不明白。

The connection attempt failed.
  EOFException
  java.io.EOFException

我之前也收到过

Connection Refused
错误信息。当我不使用 ssh 隧道时会发生这种情况。当我检查在服务器上运行的 docker 容器时,IP 地址列为“172.20.0.2”。我在 docker-compose 文件中公开了端口 5433。我正在尝试找到正确的连接字符串(成功通过 ssh 隧道后)。

username: postgres
password: mypassword
database: postgres
port: 5433
host: ? (I haveve tried "localhost" and "172.20.0.2")

有人能拯救我的理智吗?

长话短说;博士 尝试连接到在数字海洋水滴上的 docker 容器中运行的 postgres 数据库。容器和 Postgres 正在运行(我能够连接到容器并使用 psql 运行查询)。我也知道没有任何防火墙问题,我能够连接到在同一个液滴中的容器中运行的气流仪表板。

postgresql docker ssh digital-ocean dbeaver
© www.soinside.com 2019 - 2024. All rights reserved.