2015-12-06 53 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