【问题标题】:Running django developing server in a docker container在 docker 容器中运行 django 开发服务器
【发布时间】:2020-12-24 01:49:58
【问题描述】:

所以我试图在容器上运行 Django 开发服务器,但我无法通过浏览器访问它。我有 2 个使用同一个 docker 网络的容器,一个带有 postgress,另一个是 Django。我设法 ping 两个容器并成功将其中 2 个连接在一起并运行 ./manage.py runserver ok 但不能 curl 或在浏览器中打开它

这是我的 Django docker 文件

FROM alpine:latest

COPY ./requirements.txt .
ADD ./parking/ /parking
RUN apk add --no-cache --virtual .build-deps python3-dev gcc py3-pip postgresql-dev py3-virtualenv musl-dev libc-dev linux-headers 


RUN virtualenv /.env 
RUN /.env/bin/pip install -r /requirements.txt
WORKDIR /parking
EXPOSE 8000 5432

我从 docker hub 拉出来的 postgres 容器

我用 django 运行

docker run --name=django --network=app -p 127.4.3.1:6969:8000 -it dev/django:1.0

我用 postgres 运行

docker run --name=some-postgres --network=app -p 127.2.2.2:6969:5432 -e POSTGRES_PASSWORD=123 -e POSTGRES_DB=parking postgres

任何帮助都会很棒。谢谢

【问题讨论】:

  • 你用 curl 或浏览器访问了什么 URL?
  • 我使用Starting development server at http://127.1.9.9:8000/访问

标签: django docker dockerfile


【解决方案1】:

我认为你忘记在 dockerfile 和 中添加运行应用程序的命令,当你运行这个镜像时,它只是启动 virtualenv 并在 requirements.txt 中安装所有 python 依赖项,但是 django 应用程序没有启动.您需要在末尾添加类似

CMD "python parking/manage.py runserver"

这将使您的容器仍在所选端口上运行,并使您的应用程序可在 127.4.3.1:6969:8000 访问。

【讨论】:

  • 我仍然无法访问它伴侣浏览器说我在输入127.4.3.1:6969时连接已重置
【解决方案2】:

好的,所以我设法弄清楚了,我查看了@leonardo-alves-dos-santos 的答案,得出的结论是我运行CMD "python parking/manage.py runserver 0.0.0.0:8000" 。现在我可以使用来自 docker 网络的 Django 容器端口 127.4.3.1:6969172.18.0.2:8000 访问我的 Django 应用程序

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-22
    • 1970-01-01
    • 2023-02-10
    • 2018-09-02
    • 2015-02-23
    • 1970-01-01
    • 2016-12-05
    相关资源
    最近更新 更多