boot2docker,docker,在mac os上的django x

我想在Mac OS X上的docker中运行一个Django应用程序。我已经使用get-started教程安装了docker。

我参考了docker-library中的Django文档来构build镜像, https://github.com/docker-library/docs/tree/master/django ,我将Dockerfile添加到一个新的Django项目文件夹中

问题是我生成的图像,并成功地运行容器,但每当访问container-ip:8000http://localhost:8000 ,它不起作用。 任何人有解决办法

这里是图像和容器信息; docker_test是我的应用程序

 REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE docker_test latest fd6ceebc0c58 13 hours ago 761.5 MB django onbuild 9cbcfd71d759 30 hours ago 728.6 MB CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cbf98a73ea0a docker_test "python manage.py ru 26 minutes ago Up 26 minutes 0.0.0.0:8000->8000/tcp docker_app 

每当我访问容器IP:8000或http:// localhost:8000 ,它不起作用

请参阅docker / issues / 4007 :在OSX上使用boot2docker时,您需要使用端口转发。
这意味着VM boot2docker需要将端口8000转发到OSX实际主机。
我在这里提到 :

 $ VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port8000,tcp,,8000,,8000"; 

如果虚拟机已经在运行,你应该运行这个命令:

 $ VBoxManage controlvm "boot2docker-vm" natpf1 "tcp-port8000,tcp,,8000,,8000"; 

这个脚本 ,例如,可以帮助。

如“ OSX上的Boot2docker ”所示, localhost不起作用:

它不起作用的原因是你的DOCKER_HOST地址不是localhost地址( 0.0.0.0 ),而是boot2docker虚拟机的地址。

获取boot2docker虚拟机的地址。

 $ boot2docker ip 192.168.59.103 

在浏览器中inputhttp://192.168.59.103:8000地址。