具体情况就是:在docker环境中新创建一个django项目,但网页打不开127.0.0.1:8000,以下是排除问题的过程,记录下分享给大家。

首先我运行docker环境

docker run -it --rm -v E:\Tmp\Django:/opt/Django -p 8000:8000 anaconda3 /bin/bash

正常进入docker,然后开始启动我的项目了

python manage.py runserver

但是打开http://127.0.0.1:8000报错

按照命令提示我运行了

python manage.py migrate

一切看起来正常,但是运行还是打不开网页,怀疑是端口问题。

加上0.0.0.0:8000后运行正常

问题原因分析:

127.0.0.1是一个回送(loopback)地址,只能用于本地测试,Web应用绑定到127.0.0.1是不能被docker映射的端口访问到的;


0.0.0.0是一个特殊的IP,绑定在0.0.0.0上后无论是通过127.0.0.1还是本机IP去访问Web服务,都是可以的。

参考资料:

1.https://docs.djangoproject.com/en/2.2/intro/tutorial01/