我想我遗漏了一些明显的东西,但我似乎无法破解这一点。我正在尝试将一个端口从在docker容器中运行uwsgi的django应用程序映射到本地Macintosh主机。下面是设置。
Mac 10.11运行docker-machine 0.5.1,virtualbox 5.0.10和docker 1.9.1
我用docker-machine创建了一个服务器,设置了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。在外面一个码头检查container_id给了我一个
"Ports": {
"8000/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "32768"
}
]
},因此,我可以从上面的命令中看到扩展坞主机192.168.99.100上到32768的映射。但是,每当我尝试卷曲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的理解来工作。
谢谢克雷格
发布于 2015-12-07 03:39:21
由于您是通过VirtualBox VM运行的,因此我仍然建议您将端口映射到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 launchhttps://stackoverflow.com/questions/34121721
复制相似问题