如何从我的浏览器访问 Google Compute Engine VM 上的 Django 运行?
How do I access Django running on a Google Compute Engine VM from my browser?
我有一个 Django 仪表板应用程序,我想从我的浏览器中查看。 Django 运行 在 Google 的计算引擎实例之一的 Docker 容器中。 GCE 实例位于 Google VPC 上,我在其上添加了防火墙规则以打开 Django 的端口 8000。我已将我的 IP 添加到 settings.py 中 Django 的 ALLOWED_HOSTS。容器的日志显示它 运行 很好,但是当我从浏览器访问 GCE 实例的 IP 时,我立即无法连接。我可以从我的命令行 ping 实例就好了。我在这里缺少什么吗?现在已经坚持了几个小时。
注意:为了让 Celery 与 RabbitMQ 容器通信,我在 "Docker network" 上安装了 Django 容器 运行。这是在某个地方向我推荐的,但我不熟悉 Docker 网络或者它们是否导致了问题。
尝试 运行 你的 django 应用程序使用命令
python manage.py runserver 0.0.0.0:8000
来自 django 文档:
Note that the default IP address, 127.0.0.1, is not accessible from
other machines on your network. To make your development server
viewable to other machines on the network, use its own IP address
(e.g. 192.168.2.1) or 0.0.0.0 or :: (with IPv6 enabled).]
1
经过反复试验,我找到了解决方案。这不是很直观,所以我会 post 在这里以防我可以帮助其他人。
对我来说,解决问题的方法是在 运行 连接应用程序容器时在命令行上公开端口 (8000):
docker run -p 8000:8000 ...
我这么长时间都没有想到的原因是因为我已经在 Dockerfile 中公开了端口:EXPOSE 8000
,当我 运行 docker ps
列出每个公开的端口时容器,容器似乎已经暴露端口:8000/tcp
。但是,我不知道的是它应该看起来像:0.0.0.0:8000->8000/tcp
.
无论如何,希望这对其他人有所帮助。
我有一个 Django 仪表板应用程序,我想从我的浏览器中查看。 Django 运行 在 Google 的计算引擎实例之一的 Docker 容器中。 GCE 实例位于 Google VPC 上,我在其上添加了防火墙规则以打开 Django 的端口 8000。我已将我的 IP 添加到 settings.py 中 Django 的 ALLOWED_HOSTS。容器的日志显示它 运行 很好,但是当我从浏览器访问 GCE 实例的 IP 时,我立即无法连接。我可以从我的命令行 ping 实例就好了。我在这里缺少什么吗?现在已经坚持了几个小时。
注意:为了让 Celery 与 RabbitMQ 容器通信,我在 "Docker network" 上安装了 Django 容器 运行。这是在某个地方向我推荐的,但我不熟悉 Docker 网络或者它们是否导致了问题。
尝试 运行 你的 django 应用程序使用命令
python manage.py runserver 0.0.0.0:8000
来自 django 文档:
Note that the default IP address, 127.0.0.1, is not accessible from other machines on your network. To make your development server viewable to other machines on the network, use its own IP address (e.g. 192.168.2.1) or 0.0.0.0 or :: (with IPv6 enabled).]
1
经过反复试验,我找到了解决方案。这不是很直观,所以我会 post 在这里以防我可以帮助其他人。
对我来说,解决问题的方法是在 运行 连接应用程序容器时在命令行上公开端口 (8000):
docker run -p 8000:8000 ...
我这么长时间都没有想到的原因是因为我已经在 Dockerfile 中公开了端口:EXPOSE 8000
,当我 运行 docker ps
列出每个公开的端口时容器,容器似乎已经暴露端口:8000/tcp
。但是,我不知道的是它应该看起来像:0.0.0.0:8000->8000/tcp
.
无论如何,希望这对其他人有所帮助。