如何在Django Docker实现中使用/链接远程PostgreSQL数据库

3
我们有一个远程的Postgres数据库 (Amazon RDS DB),需要从Docker Django应用程序中访问,我们应该如何连接它?
在这种情况下,我的django-compose.yml文件应该如何编写?
2个回答

3
我不熟悉Amazon RDS数据库,但我猜您有一个IP地址和一些凭据来访问数据库。
在这种情况下,您需要将IP地址作为Docker容器的额外主机添加:
```extra hosts```
django_app:
  image: your_image
  extra_hosts:
    - "database:123.456.78.90"

现在您的Django应用可以使用主机名database访问数据库。


这基本上就是我在MySQL问题中所提到的,只有在没有外部DNS解析器时才需要 - 外部连接仍然是必需的,它与“链接”无关。 - Eugen Mayer
在端口部分,我们需要提及端口吗? - Neo
“ports”部分仅指定哪些端口暴露给Docker外部世界(例如映射到您的外部IP地址)。在您的情况下,可能只有端口80。 - Martin
@Neo,简单的答案是始终使用标准的Postgres端口,并做出这样的假设。如果你需要一个不同的端口,应该通过传递给容器的环境变量来指定。 - MillerGeek

0

如果不使用Rancher或Docker Networks和其他工具(例如IPSEC),则无法轻松地链接那些容器。而且通常也不需要这样做。这意味着您将路由/加入两个不同docker主机的2个Docker网络,这实际上是一个庞大的话题。关于此背后的一般理论,请参考https://docs.docker.com/engine/userguide/networking/,如果您需要此功能,请尝试并提出更具体的问题。

低级概念就是简单地使用外部连接,因为你的Docker容器可以无问题地访问外部世界。

您的AWS实例肯定会有一个可外部解析的名称,例如youdb.aws.domain.com,而PostgreSQL服务器则运行在9000端口

所以你所要做的就是用postgresql连接到youdb.aws.domain.com:9000


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接