我已经设置了一个docker 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 :(得分:38)
容器中运行的Web服务器正在侦听环回网络接口(127.0.0.1
)的端口5000上的连接。因此,此Web服务器将仅响应源自该容器本身的http请求。
为了使Web服务器接受来自容器外部的连接,您需要将其绑定到0.0.0.0
IP地址。
当您使用Flask时,可以使用以下命令在 runserver.py 文件中轻松实现:
if __name__ == '__main__':
app.run(host='0.0.0.0')
然后,当您启动容器并查看日志时,您应该看到类似的内容:
* Running on http://0.0.0.0:5000/