连接到Docker中的龙卷风应用程序

Dockerfile中我使用:

EXPOSE 8888 

所以,我运行容器:

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

在输出中我有这个string:

 c980349b5b2120064fc197b00a1aaf94aa16c788b66cb148da7826bb5488d0db 

然后我想知道ip,我可以从浏览器连接:

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

它返回172.17.0.20

我去web-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 

什么都不返回

我会检查两次图像,因为它似乎容器没有任何进程侦听端口8888.要debugging的问题,您可以在容器内运行一个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) 

如果您没有看到问题,我会要求您发布您的应用程序Dockerfile,除此之外,如果您使用容器IP访问您的服务,则不需要在EXPOSE 8888中使用EXPOSE 8888 。 当使用-P选项运行容器时, EXPOSE用于使这些端口能够发布到主机的随机端口。