具体情况就是:在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/