【发布时间】:2021-01-13 07:52:53
【问题描述】:
我正在通过 docker 运行我的项目。它包含一些 django 的应用程序(后端)、vue.js(前端)、celery、redis 和 postgres。所有服务都按预期工作,但现在我需要编辑我的项目源代码。 为此,我想停止负责后端和前端的容器并在 localhost 上运行它们。其他服务,如 redis、postgress 等,我留在容器中工作。我怎样才能更好地做到这一点?
我在做: 停止提到的容器, 离开在容器中工作其他服务, 给了python manage.py runserver。
但现在我得到了这个错误。:
psycopg2.OperationalError: could not connect to server: Connection refused
Is the server running on host "127.0.0.1" and accepting
TCP/IP connections on port 5432?
我猜我的项目无法访问 postgres db 工作容器。为什么会这样? 我在终端说服我的数据库在 5432 端口的 docker 容器中运行。
【问题讨论】:
-
127.0.0.1 是您的本地主机 IP,但 docker 设计使用单独的网络。你应该运行
docker inspect <postgres_container_id> | grep "IPAddress"来获取docker分配的地址。 -
当您启动数据库容器时,您是否有
docker run -p ????:5432或 Composeports: [????:5432]设置?连接到127.0.0.1(Docker Toolbox 上除外)和该端口号。 -
@DavidMaze 是的,您认为方向正确。解决方案是在我的文件中指定外部端口。谢谢。
标签: django postgresql docker