【问题标题】:Django Docker app container don't open on browser after run [duplicate]运行后 Django Docker 应用程序容器未在浏览器上打开 [重复]
【发布时间】:2019-10-24 13:58:30
【问题描述】:

我 dockerize 我的 django 应用程序,这是我的 Dockerfile:

FROM python:3.6-alpine
EXPOSE 8000
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 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

好吧,我构建了我的图像并运行它:

docker run -p 8000:8000 --link postgres:postgres cath11/test_app

一切似乎都完成了:

但是当我在http://0.0.0.0:8000/http://127.0.0.1:8000/ 上打开浏览器时,我的应用无法打开

为什么我的 django 应用程序似乎在我的容器上运行,我公开了端口但在托管的浏览器中看不到它?

提前非常感谢

【问题讨论】:

  • 您在 Windows 上吗?如果是这样,您是使用 Docker Toolbox 还是 Docker Machine,还是使用本机 Docker Desktop 应用程序?
  • 现在我在我的 mac 上使用 Docker 工具箱

标签: python django docker dockerfile


【解决方案1】:

使用docker-machine ip default 来检查IP,并使用它来代替localhost。 从技术上讲,django 应用程序是在容器内提供的,而不是您的本地主机。

所以在你的情况下,你应该试试http://<ip from the command>:8000/

【讨论】:

  • 似乎工作,但我如何才能将内部 ip 链接到我的外部主机以使用 127.0.0.1 而不是 docker 内部?谢谢
  • 您可能需要将本地 IP 重定向到 docker IP。但这将是hack-ish。你为什么要这样做呢?
猜你喜欢
  • 2020-12-19
  • 2023-03-30
  • 2018-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-23
相关资源
最近更新 更多