【发布时间】:2025-12-26 23:55:07
【问题描述】:
我创建了一个 django docker 应用程序映像。 在我的 django 应用程序中,settings.py DATABASE 条目是:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'cath_local',
'USER': 'postgres',
'PASSWORD': 'mypass',
'HOST': 'postgres',
'PORT': '5432',
'OPTIONS': {
'client_encoding': 'UTF8',
},
}
}
好吧,此时我使用docker build 命令创建我的docker 映像;全做完了。
在运行我的 django 应用程序 docker 映像之前,我运行:
docker run -it postgres
图像已下载,容器正确启动
但是当我运行我的 django 应用程序时
docker run -it cath2019/cathedral_studio:latest
但是当 python manage.py runserver 命令进入我的 Dockerfile 启动时,我得到了这个错误:
conn = _connect(dsn, connection_factory=connection_factory, **kwasync) django.db.utils.OperationalError:无法将主机名“postgres”转换为地址:名称无法解析
这里是我的应用程序 Dockerfile:
FROM python:3.6-alpine
RUN apk add --no-cache make linux-headers libffi-dev jpeg-dev zlib-dev
RUN apk update && apk add postgresql-dev gcc python3-dev musl-dev
#RUN apk update && apk add build-essential libssl-dev libffi-dev
RUN mkdir /Code
WORKDIR /Code
COPY ./requirements.txt .
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
ENV PYTHONUNBUFFERED 1
COPY . /Code/
ENTRYPOINT python /Code/core/manage.py runserver 0.0.0.0:8000
如何连接到我的 django 设置数据库以运行 postgres 容器?
提前非常感谢
【问题讨论】:
-
您可以将其设置为
10.0.2.2,但在运行 postgres 时您也必须映射端口,我建议保持原样并仅使用 docker-compose 文件 -
最好用docker-compose将两个容器一起启动,放在同一个网络上。
标签: python django postgresql docker