在mac os x上的boot2docker,docker,django

时间:2015-07-11 03:34:49

标签: python django macos docker boot2docker

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

我在docker-library中引用Django doc来构建图像,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

1 个答案:

答案 0 :(得分:6)

  

每当我访问container-ip:8000或http://localhost:8000时,它都不起作用

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

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

如果vm已在运行,则应运行另一个命令:

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

This script可以提供帮助。

如“Boot2docker on OsX”所示,localhost不起作用:

  

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

     

获取boot2docker VM的地址。

$ boot2docker ip
192.168.59.103
  

在浏览器中输入http://192.168.59.103:8000地址。