2015-12-06 54 views
1

我想我错过了一些明显的东西,但我似乎无法破解这一个。我试图将运行端口容器中的uwsgi的django应用程序的端口映射到本地的Macintosh主机。这是设置。码头集装箱港口映射问题

的Mac 10.11运行泊坞窗机0.5.1与VirtualBox的5.0.10和1.9.1泊坞窗

我创建了泊坞窗机设置我的搬运工文件服务器,并成功地建立我的搬运工容器。在容器中,我有以下命令:

# 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 

因此,任何想法?一切都应该按照我的理解码头工作。

感谢 克雷格

+0

你可以发布'Dockerfile'或者至少是配置和命令用于启动uwsgi服务器?这味道就像uwsgi只能在127.0.0.1上进行监听... –

回答

0

既然你是通过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 launch