首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >docker容器端口映射问题

docker容器端口映射问题
EN

Stack Overflow用户
提问于 2015-12-07 03:33:55
回答 1查看 455关注 0票数 1

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

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

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

代码语言:javascript
复制
# Port to expose
EXPOSE 8000

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

代码语言:javascript
复制
eval "$(docker-machine env dev)"
docker-machine ip dev
192.168.99.100

docker run -P launch

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

代码语言:javascript
复制
curl http://localhost:8000

正如我所期望的那样,我得到了HTML。在外面一个码头检查container_id给了我一个

代码语言:javascript
复制
    "Ports": {
        "8000/tcp": [
            {
                "HostIp": "0.0.0.0",
                "HostPort": "32768"
            }
        ]
    },

因此,我可以从上面的命令中看到扩展坞主机192.168.99.100上到32768的映射。但是,每当我尝试卷曲http://192.168.99.100:32768

代码语言:javascript
复制
curl http://192.168.99.100:32768
curl: (7) Failed to connect to 192.168.99.100 port 32768: Connection  refused 

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

谢谢克雷格

EN

回答 1

Stack Overflow用户

发布于 2015-12-07 03:39:21

由于您是通过VirtualBox VM运行的,因此我仍然建议您将端口映射到VirtualBox级别,正如我在"How to connect mysql workbench to running mysql inside docker?“中提到的那样。

代码语言:javascript
复制
VBoxManage controlvm "boot2docker-vm" --natpf1 "tcp-port8000 ,tcp,,8000,,8000"
VBoxManage controlvm "boot2docker-vm" --natpf1 "udp-port8000 ,udp,,8000,,8000"

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

代码语言:javascript
复制
docker run -p 8000:8000 launch
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34121721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档