在Windows上的Docker-machine端口转发不起作用

我试图访问我的Windows机器上运行在Docker中的Django应用程序。 我正在使用docker机器。 我已经在这个几个小时了解了这个。

这是我的Django应用程序的Dockerfile:

FROM python:3.4-slim RUN apt-get update && apt-get install -y \ gcc \ gettext \ vim \ curl \ postgresql-client libpq-dev \ --no-install-recommends && rm -rf /var/lib/apt/lists/* EXPOSE 8000 WORKDIR /home/ # add app files from git repo ADD . server/ WORKDIR /home/server RUN pip install -r requirements.txt CMD ["python", "manage.py", "runserver", "8000"] 

所以这应该暴露(至less在容器中)端口8000。

当我使用命令docker-machine ip default我给了IP 192.168.99.101。 我去端口8000上的IP,但没有得到任何回应。

我进入VirtualBox查看是否转发这些端口将工作。 这是configuration:

VirtualBox端口转发配置

我也尝试使用127.0.0.1作为主机IP。 我也试过禁用Windows防火墙。

这是我的启动容器的命令:

 docker run --rm -it -p 8000:8000 <imagename> 

为什么我无法连接到这个端口,我感到不知所措。 当我运行docker-machine ls ,它给了我的URL是tcp://192.168.99.101:2376 ,当我进入它时,它给了我一些文件,所以我知道docker-machine在那个端口上是活动的。

另外,当我运行docker ps我得到这个:

 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5c00cc28a2bd <image name> "python manage.py run" 7 minutes ago Up 7 minutes 0.0.0.0:8000->8000/tcp drunk_knuth 

任何帮助将不胜感激。

问题是服务器在127.0.0.1运行时,它应该在0.0.0.0运行。

我改变了Dockerfile中的CMD

CMD ["python", "manage.py", "runserver", "8000"]

CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

现在它工作。