【问题标题】:docker container port mapping issuedocker容器端口映射问题
【发布时间】:2015-12-06 19:33:54
【问题描述】:

我想我遗漏了一些明显的东西,但我似乎无法破解这个。我正在尝试将一个端口从在 docker 容器中运行 uwsgi 的 django 应用程序映射到我的本地 Macintosh 主机。这是设置。

Mac 10.11 运行 docker-machine 0.5.1,带有 virtualbox 5.0.10 和 docker 1.9.1

我使用 docker-machine setup 我的 docker 文件创建了一个服务器,并成功构建了我的 docker 容器。在容器中我有以下命令

# Port to expose
EXPOSE 8000

映射到容器内通过 uwsgi 使用的端口。当我通过

运行他的容器时
eval "$(docker-machine env dev)"
docker-machine ip dev
192.168.99.100

docker run -P launch

容器正常启动。如果我进入容器并执行一个

curl http://localhost:8000

我得到了我期望的 HTML。在外面,一个 docker inspect container_id 给我一个

    "Ports": {
        "8000/tcp": [
            {
                "HostIp": "0.0.0.0",
                "HostPort": "32768"
            }
        ]
    },

所以我可以通过上述命令在 192.168.99.100 的 docker-machine 主机上看到到 32768 的映射。但是,每当我尝试 curl http://192.168.99.100:32768

curl http://192.168.99.100:32768
curl: (7) Failed to connect to 192.168.99.100 port 32768: Connection  refused 

所以对此有什么想法吗?一切都应该按照我对 docker 的理解工作。

谢谢 克雷格

【问题讨论】:

  • 您能发布Dockerfile 或者至少发布用于启动uwsgi 服务器的配置和命令吗?这闻起来像 uwsgi 只在 127.0.0.1 上监听...

标签: django docker docker-machine


【解决方案1】:

由于您正在通过 VirtualBox 虚拟机运行,我仍然建议在 VirtualBox 级别上映射端口,正如我在“How to connect mysql workbench to running mysql inside docker?”中提到的那样

VBoxManage controlvm "boot2docker-vm" --natpf1 "tcp-port8000 ,tcp,,8000,,8000"
VBoxManage controlvm "boot2docker-vm" --natpf1 "udp-port8000 ,udp,,8000,,8000"

并使用显式端口映射(而不是随机的 -P)运行容器

docker run -p 8000:8000 launch

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 2019-08-28
    • 2020-02-29
    • 2016-05-20
    • 2017-08-02
    • 1970-01-01
    • 2014-09-01
    相关资源
    最近更新 更多