【发布时间】:2017-07-25 07:46:20
【问题描述】:
我正在尝试将我的 Django 项目放入 docker 映像中。
这是我的Dockerfile:
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt -i https://pypi.douban.com/simple
ADD . /code/
EXPOSE 8000
然后我构建并运行这个 docker 容器:
docker run -i -t -p 8000:8000 e2 python3 manage.py runserver 8000
Performing system checks...
System check identified no issues (0 silenced).
July 25, 2017 - 16:28:00
Django version 1.11.3, using settings 'chaoYuBackend.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
但是当我在 Chrome 中访问 localhost:8000 或 127.0.0.1:8000 时,我得到了 ERR_CONNECTION_REFUSED。
这是我执行docker ps得到的,好像8000端口已经暴露了:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
71c0502de704 e2 "python3 manage.py..." 54 seconds ago Up 52 seconds 0.0.0.0:8000->8000/tcp gallant_boyd
当我运行lsof -i :8000 时,出现错误:
我的 docker 版本是 17.06.0-ce, build 02c1d87,我使用的是 MacOS 10.12.6。
我的Dockerfile 有什么问题吗?如何在浏览器中访问我的 Django 站点?
提前致谢!
【问题讨论】:
-
使用
lsof -i :8000检查8000是否真的在使用。使用sudo iptables-save列出你的 iptables 规则。
标签: django docker dockerfile