Docker容器连接宿主机Django开发服务器时连接被拒绝
问题原因与解决方法
是的,这个连接拒绝问题直接和python manage.py runserver的默认启动行为相关。
默认执行python manage.py runserver时,Django开发服务器只会绑定到宿主机的127.0.0.1(本地回环地址),这意味着只有宿主机自身的进程能访问8000端口。而Docker容器属于独立的网络环境,即便通过host.docker.internal解析到了宿主机IP,也无法访问仅绑定在回环地址上的服务。
快速修复步骤
- 停止当前的Django服务,改用以下命令启动,让服务器绑定到宿主机所有可用的网络接口:
python manage.py runserver 0.0.0.0:8000 - 重启服务后,在Docker容器内再次执行
curl http://host.docker.internal:8000即可正常访问。
你也可以在宿主机上通过netstat -tulpn | grep 8000验证端口绑定状态:默认启动会显示127.0.0.1:8000,修改命令后会显示0.0.0.0:8000,表示允许所有网络来源访问该端口。
内容的提问来源于stack exchange,提问作者Caco
相关产品推荐
相关产品推荐

