【问题标题】:boot2docker, docker, django on mac os xmac os x 上的 boot2docker、docker、django
【发布时间】:2015-07-11 03:34:49
【问题描述】:

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

我参考 docker-library 中的 Django 文档来构建镜像,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

【问题讨论】:

    标签: python django macos docker boot2docker


    【解决方案1】:

    每当我访问 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 虚拟机的地址。

    获取 boot2docker 虚拟机的地址。

    $ boot2docker ip
    192.168.59.103
    

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-20
    • 2017-09-28
    • 2011-12-30
    • 2016-11-26
    • 2011-09-12
    • 2011-09-27
    相关资源
    最近更新 更多