2016-03-15 64 views
0

我加載了一個簡單的docker ubuntu鏡像。啓動容器。在該容器中安裝捲曲。碼頭不能訪問主機中的gunicorn服務資源

在碼頭的主機。我編寫了兩個基於python的web服務器。一個基於SimpleHTTPServer(託管在端口4000上)和一個基於獵鷹(託管在5000上的gunicorn)。

基於Python的Web服務器是從容器外殼訪問:

[email protected]:/# curl http://172.17.0.1:4000 
<!DOCTYPE> 
<html> 
    <head> 
     <title>Hello World</title> 
    </head> 
    <body> 
     <h1>Welcome</h1> 
     <p>Hello World</p> 
    </body> 
</html> 

但gunicorn一個簡單的失敗:

[email protected]:/# curl http://172.17.0.1:5000/quote 
curl: (7) Failed to connect to 172.17.0.1 port 5000: Connection refused 
+0

gunicorn one可能只在本地主機上偵聽。你需要在所有接口或docker0接口上進行監聽 –

+0

@warmoverflow你是對的... gunicorn可以綁定到多個端點。如何讓它聽所有接口,我不知道... – deostroll

+0

運行gunicorn與-b 0.0.0.0:5000 –

回答

1

Gunicorn在localhost上偵聽(127.0.0.1)只有在默認情況下,而SimpleHTTPServer默認偵聽所有接口。爲了能夠訪問Gunicorn服務頁面,運行Gunnicorn或者-b 0.0.0.0:5000(監聽所有接口)或-b 172.17.0.1:5000(僅在docker0上監聽,可從Docker容器訪問)。