gpt4 book ai didi

django - 连接两个 docker 容器

转载 作者:行者123 更新时间:2023-11-29 11:54:54 25 4
gpt4 key购买 nike

我有两个容器,第一个是django,第二个是postgresql

好吧,在我的第一台服务器上,我运行了 django,我正在尝试将它与第二台服务器连接起来。第二个容器的端口 32770 公开,但在内部运行在端口 5432 中。在我的本地机器上,我有连接:服务器:'本地主机'端口:32770用户:'我的用户'密码:''

它正在连接,但是对于我的 django 容器,我收到了这个错误:

could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 32770?

端口 5432

也是如此

如何连接两台服务器?

最佳答案

由于您单独运行容器,因此您有不同的选择

在postgres容器网络上运行django

$ docker run -d ... postgres
<container id>

$ docker run -d ... --net container:<containerid> django

然后django可以在localhost:5432上找到postgres

将 django 和 postgres 作为命名容器运行

$ docker run --name postgresdb -d ... postgres
<container id>

$ docker run -d ... django

现在 django 可以在 postgresdb:5432 上找到数据库

在主机上运行两个容器

$ docker run --net host -d ... postgres
<container id>

$ docker run -d ... --net host django

然后django可以在localhost:5432上找到postgres

在同一网络上运行容器

$ docker network create mynet

$ docker run --name postgresdb --net mynet -d ... postgres
<container id>

$ docker run --net mynet -d ... django

现在 django 可以在 postgresdb:5432 上找到数据库

连接主机IP和映射端口

$ docker run -d -p 32770:5432 .... postgres

$ docker run -d .... django

Django 现在可以连接到 <yourdockerhostip>:32770 上的数据库.

更好的选择是使用 docker-compose 运行它.在 https://docs.docker.com/compose/ 上了解更多信息

关于django - 连接两个 docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46327006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com