运行docker django容器时无法连接到服务器?

我已经浏览了这个网站上的问题,但是我一直无法解决这个问题。 我创build并运行了我的django应用程序的图像,但是当我尝试从浏览器查看应用程序时,页面无法加载(无法build立与服务器的连接)

我正在使用docker工具箱,我正在使用OS X El Capitan和Macbook是从2009年。

容器IP是:192.168.99.100

django项目根被称为“Web应用程序”,是包含manage.py的目录。 我的Dockerfile和我的requirements.txt文件在这个目录下。

我的dockerfile是:

从python:3.5

WORKDIR / usr / src / app

COPY requirements.txt ./

运行pip install -r requirements.txt

COPY。 。

EXPOSE 8000

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

我的requirements.txt有django和mysqlclient

我的django应用程序使用Mysql,并试图在浏览器中查看dockerized django应用程序,而不必将其链接到标准的mysql映像。 在这两种情况下,我只看到“问题加载页面无法build立连接到服务器”

当我尝试将django容器链接到我使用的mysql容器时:

docker运行 – 链接mysqlapp:mysql -d应用程序

在哪里mysqlapp是我的mysql图像和“应用程序”是我的Django图像

在我的django settings.py中,允许的主机是:

ALLOWED_HOSTS:['localhost','127.0.0.1','0.0.0.0','192.168.99.100']

同样,当我使用docker build时,图像被成功创build,并且成功地作为容器运行。

为什么页面不能在浏览器中加载?

我build议使用yml文件和docker撰写。 下面是一个让你开始的模板:

[Dockerfile]

FROM python:2.7 RUN pip install Django RUN mkdir /code WORKDIR /code COPY code/ /code/ 

您的文件位于代码目录中。

[搬运工-compose.yml]

 version: '2' services: db: image: mysql web0: build: . command: python manage.py runserver 0.0.0.0:8000 ports: - "8000:8000" depends_on: - db 

在Dockerfile中定义的工作目录path可能有问题。 希望以上帮助。

由salehinejad提供的解决scheme似乎是足够好的,虽然我没有亲自testing过,但如果你不想使用yml文件,想要走你的路,那么你应该通过添加端口

-p 0:8000

在你的运行命令

所以你应该看起来像这样:

 docker run -p 0:8000 --link mysqlapp:mysql -d app 

我怀疑你还没有告诉Docker与你的虚拟机交谈,并且你的容器正在主机上运行(如果你可以在本地主机上访问,这就是问题所在)。

请看这个职位的解决scheme:

使用IP连接到docker集装箱