无法连接到Docker容器中运行的Django服务器(Docker for Mac)

我有一个docker容器在我的系统上运行,我开始使用这个命令:

docker run -it -v ~/some/dir -p 8000:80 3cce3211b735 bash 

现在docker ps列出了这个:

  CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 44de7549d38e 3cce3211b735 "bash" 14 minutes ago Up 14 minutes 22/tcp, 443/tcp, 8082/tcp, 0.0.0.0:8000->80/tcp hardcore_engelbart 

在容器内部,我使用以下命令运行我的django应用程序: python manage.py runserver 80

但我无法查看使用以下任一方面的页面:

1. localhost:8000

2. 127.0.0.1:8000

我明白,我的8000端口映射到容器上的80端口。 但为什么我无法访问它。 我使用docker为Mac而不是docker工具箱。 请帮助和评论,如果你需要更多的信息。

好吧,所以我find了解决我的问题。 这个问题不在docker端口映射中。 实际的问题是这一行:

 python manage.py runserver 80 

这将在127.0.0.1:80上运行服务器。 Docker容器内的本地主机不是本机上的本地主机。 所以解决scheme使用这个命令运行服务器:

 python manage.py runserver 0.0.0.0:80 

之后我才能访问网页。 如果遇到无法连接到docker容器内运行的django服务器的问题,则应尝试在0.0.0.0:port上运行服务器。 您将能够使用localhost:port在您的浏览器中访问它。 希望这有助于某人。