2014-10-17 73 views
4

我設置一個碼頭工人的Ubuntu 14.04的圖像,我用下面的命令運行它:無法連接到瓶應用在碼頭工人從主機

docker run -d -p 5000:5000 ari/python3-flask

的Dockerfile:

FROM ubuntu:14.04 
RUN apt-get update && apt-get install -y python3 python3-pip 
ADD . /var/my_app 
RUN pip3 install -r /var/my_app/requirements.txt 
EXPOSE 5000 
CMD ["python3", "/var/my_app/runserver.py"] 

但是,如果我嘗試捲曲地址(localhost:5000)或在瀏覽器中訪問它,則會出現連接失敗錯誤。

泊塢窗日誌容器顯示:

Running on http://127.0.0.1:5000/ 

Restarting with reloader 

有誰什麼是或可能是錯誤與我的碼頭工人設置和/或配置?謝謝。

+0

發佈你的Dockerfile,你在你的情況下使用真正的docker或boot2docker(win或macos)嗎? – Dragu 2014-10-17 11:41:05

+0

什麼'碼頭日誌'顯示? – Thomasleveil 2014-10-17 14:15:36

+0

@Dragu:我使用真正的碼頭工。 – Ari 2014-10-17 15:27:24

回答

25

在您的容器中運行的Web服務器正在監聽環回網絡接口(127.0.0.1)的端口5000上的連接。因此,這個Web服務器將只響應源自該容器本身的http請求。

爲了讓Web服務器接受源自容器外部的連接,您需要將其綁定到IP地址0.0.0.0

當您使用的瓶,這可以很容易地在你的runserver.py文件通過使用來實現:

if __name__ == '__main__': 
    app.run(host='0.0.0.0') 

然後,當你開始你的容器,並期待在日誌中,你應該看到類似:

* Running on http://0.0.0.0:5000/ 
+0

不錯的觀察。謝謝 – 2014-11-05 17:48:21