2015-06-26 70 views
1

龍捲風應用在Dockerfile我用:連接到泊塢

EXPOSE 8888 

所以,我跑了容器:

docker run --name some-app --link some-redis:redis -d app 

在輸出我有這個字符串:

c980349b5b2120064fc197b00a1aaf94aa16c788b66cb148da7826bb5488d0db 

然後我想知道ip,我可以從瀏覽器連接:

docker inspect --format '{{ .NetworkSettings.IPAddress }}' c980349b 
5b2120064fc197b00a1aaf94aa16c788b66cb148da7826bb5488d0db 

它返回172.17.0.20

我去網上brouser和http://172.17.0.20:8888頁面上,但我在Chrome

ERR_CONNECTION_TIMED_OUT 

請告訴我問題,以及如何解決這個問題?

謝謝!

UPDATE

Dockerfile:

FROM python:3.4.3-slim 
RUN mkdir -p /usr/src/app 
WORKDIR /usr/src/app 
COPY app.py /usr/src/app/ 
COPY requirements.txt /usr/src/app/ 
RUN pip install -r requirements.txt 
CMD [ "python", "./app.py" ] 
EXPOSE 8888 

當我使用:

docker exec -it some-app bash 
netstat -tulnp | grep 8888 

,它返回:

bash: netstat: command not found 

而且

docker logs some-app 

返回Nothing

回答

2

,因爲它似乎容器無任何進程偵聽端口8888。爲了調試,你可以在容器內運行一個shell會話的問題,我會檢查兩次圖像並檢查進程是否在聽,檢查集裝箱日誌或內部的任何文件,如果有任何日誌,你可以檢查一下,... IE:

$ sudo docker logs some-app (check container log) 
    $ sudo docker exec -it some-app bash (run an interactive shell) 
    # netstat -tulnp | grep 8888 (check if any process is listening) 

如果你沒有看不到的問題,我想請你發佈您的應用程序ckerfile和 除此之外,如果您使用容器IP訪問您的服務,則不需要在Dockerfile中使用EXPOSE 8888。當容器以-P選項運行時,EXPOSE用於使這些端口能夠發佈到主機的隨機端口。

+0

我已更新問題 – tim

+2

'docker log'→'docker logs' – Thomasleveil

+0

docker logs some-app returns nothing – tim