如何连接到 postgres 在 docker 上的另一台服务器上的 postgres?
How to connect to postgres on another server where postgres is on docker?
我可以用那种方式连接到 postgres。
在我的本地机器上我 运行:
ssh name@ip -p 22
输入 --> 密码
然后
- sudo docker-compose exec postgres bash
在那之后我可以完全访问我的 postgres 数据库。
我如何使用 python 连接到该数据库?
我知道像 psycopg2 这样的库,但我没有找到任何示例如何连接到另一台服务器上的数据库以及 docker 或 运行。
这里一共有三层。
- 您的本地计算机。
- 服务器。
- 容器运行连接数据库。
每一层之间,都有一个缝隙。之间
(1) 和 (2) 你有互联网。之间
(2) 和 (3) 你有 docker 网络。
现在,你在问题中描述的是这样的。
你先用SSH跨越(1)-(2)的鸿沟然后
你用命令越过 (2)-(3)
sudo docker-compose exec postgres bash
.
现在针对您在评论中的问题,根据
docker documentation、docker-compose exec <container-name or id> <command>
将
运行 a command
in a container
和 sudo
将您的权限提升到 root 帐户。
由于命令是 bash
,您实际上打开了一个交互式 shell
容器。
现在这种跨越两个间隙的方法会起作用,你也观察到了,但是对于
psycopg2
图书馆,不会。
再次使用 docker 文档,您可以告诉 docker 消除 (2)-(3) 差距
对于您来说,这主要是 publishing a port。你可以告诉 docker 映射
服务器上的端口到容器上的端口,因此可以消除 (2)-(3) 间隙。
此时,服务器上某个端口的连接将传递给容器
在定义的端口。
现在您唯一需要跨越的差距就是 (1)-(2),现在可以通过 psycopg2
完成
很容易(假设防火墙允许在该端口上进行入站连接)。
现在,关于如何告诉 docker 消除 (2)-(3) 间隙的详细信息在 Connecting to Postgresql in a docker container from outside 的答案中。它还向您展示了如何使用 psql
直接从本地计算机连接到数据库。
我可以用那种方式连接到 postgres。 在我的本地机器上我 运行:
ssh name@ip -p 22
输入 --> 密码
然后
- sudo docker-compose exec postgres bash
在那之后我可以完全访问我的 postgres 数据库。 我如何使用 python 连接到该数据库?
我知道像 psycopg2 这样的库,但我没有找到任何示例如何连接到另一台服务器上的数据库以及 docker 或 运行。
这里一共有三层。
- 您的本地计算机。
- 服务器。
- 容器运行连接数据库。
每一层之间,都有一个缝隙。之间 (1) 和 (2) 你有互联网。之间 (2) 和 (3) 你有 docker 网络。
现在,你在问题中描述的是这样的。
你先用SSH跨越(1)-(2)的鸿沟然后
你用命令越过 (2)-(3)
sudo docker-compose exec postgres bash
.
现在针对您在评论中的问题,根据
docker documentation、docker-compose exec <container-name or id> <command>
将
运行 a command
in a container
和 sudo
将您的权限提升到 root 帐户。
由于命令是 bash
,您实际上打开了一个交互式 shell
容器。
现在这种跨越两个间隙的方法会起作用,你也观察到了,但是对于
psycopg2
图书馆,不会。
再次使用 docker 文档,您可以告诉 docker 消除 (2)-(3) 差距 对于您来说,这主要是 publishing a port。你可以告诉 docker 映射 服务器上的端口到容器上的端口,因此可以消除 (2)-(3) 间隙。 此时,服务器上某个端口的连接将传递给容器 在定义的端口。
现在您唯一需要跨越的差距就是 (1)-(2),现在可以通过 psycopg2
完成
很容易(假设防火墙允许在该端口上进行入站连接)。
现在,关于如何告诉 docker 消除 (2)-(3) 间隙的详细信息在 Connecting to Postgresql in a docker container from outside 的答案中。它还向您展示了如何使用 psql
直接从本地计算机连接到数据库。