连接到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
用于使这些端口能够发布到主机的随机端口。