【发布时间】:2021-08-10 17:42:06
【问题描述】:
我有一个在 docker 容器中运行的 postgres 数据库:
我的码头工人撰写:
version: "3"
services:
db:
image: postgres:13.1-alpine
environment:
- POSTGRES_DB=mydb
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=test
ports:
- "5432:5432"
volumes:
- ./postgres_data:/var/lib/postgresql/data/
在宿主机上运行的Django(ubuntu linux,不在docker容器中)无法连接到它。
django 的 settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'HOST' : "localhost",
'NAME' : "mydb",
'USER' : "postgres",
'PASSWORD' : "test",
'PORT':5432,
}
}
例外:
django.db.utils.OperationalError: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"
5432 端口上的数据库当然可用(我可以使用 localhost:5432 上的 dbeaver 数据库客户端连接到它)。
问题的原因可能是什么?
【问题讨论】:
标签: python django postgresql docker