我有两个容器,第一个带有 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
上找到 db在主机 上运行两个容器
$ 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
上找到 db连接主机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/