无法看到在本地主机上的docker容器中运行的Django站点

我有一个Django应用程序,我将需要部署在亚马逊的EC2容器服务。 与此同时,为了testing部署,我试图首先在本地部署在Docker容器中,但即使运行简单的演示django应用程序,我也无法在localhost:8000上看到页面。

这是我的设置。

创build一个docker机器:

$ docker-machine create --driver virtualbox testmachine 

在此之后,我build立了我的环境:

 $ eval "$(docker-machine env testmachine)" 

我为我的testing容器设置了一个Dockerfile:

 FROM ubuntu RUN echo "deb http://archive.ubuntu.com/ubuntu/ $(lsb_release -sc) main universe" >> /etc/apt/sources.list RUN apt-get update RUN apt-get install python-pip -y RUN pip install django RUN mkdir django_test RUN cd django_test && \ django-admin.py startproject django_test . 

然后我打电话

 $ docker build -t dockertest . ... builds successfully $ docker run -d -i -t -p 8000:8000 dockertest cbef144ac068eb61b0c3e032448cc207c8f0384a9a67a710df6d9beb26d2ab32 $ docker attach cbef144ac068eb61b0c3e032448cc207c8f0384a9a67a710df6d9beb26d2ab32 root@cbef144ac068:/# cd django_test root@cbef144ac068::/django_test# python manage.py runserver 0.0.0.0:8000 

这成功启动了服务器的容器的0.0.0.0:8000/。

但是,当我尝试在浏览器中转到localhost:8000时,出现“此网页不可用”。 我错过了什么?

原来我看着错误的IP。

要弄清楚正确的IP,我跑了:

 $ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM testmachine * virtualbox Running tcp://192.168.99.100:2376 

然后我在浏览器中加载了192.168.99.100:8000,就像一个魅力。