无法在localhost上看到django站点在docker容器中运行

时间:2016-03-04 23:31:20

标签: django docker

我有一个django应用程序,我需要在亚马逊的EC2容器服务上部署。在此期间,为了测试部署,我试图首先在本地将它部署在docker容器中,但即使运行简单的demo django应用程序,我也无法在localhost:8000中看到该页面。

这是我的设置。

创建一个泊坞机:

$ docker-machine create --driver virtualbox testmachine

在此之后我设置了我的环境:

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

我为我的测试容器设置了一个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时,我得到一个"此网页不可用。"我错过了什么?

1 个答案:

答案 0 :(得分:0)

原来我看错了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,它就像一个魅力。