【发布时间】:2021-04-17 19:47:22
【问题描述】:
我在我的 Windows 10 操作系统上运行了 docker,并且我有一个最小的烧瓶应用程序
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run(host ='0.0.0.0', port = 5001, debug = True)
我正在使用以下文件对其进行 dockerizing
FROM python:alpine3.7
COPY . /opt
WORKDIR /opt
RUN pip install -r requirements.txt
EXPOSE 5001
ENTRYPOINT [ "python" ]
CMD ["app.py", "run", "--host", "0.0.0.0"]
从我在其他帖子和 Flask 教程中看到的内容来看,当我输入 0.0.0.0:5001 时,我应该可以从 Windows Firefox 浏览器连接到 0.0.0.0:5001,但它没有连接,我不断收到“无法连接” ' 信息。我记得使用0.0.0.0:port 在 linux ubuntu 机器上连接本地主机,但无论出于何种原因,它都不允许我在 Windows 上连接。 windows 上是否有特殊的连接设置?
【问题讨论】:
-
你是如何启动容器的? 0.0.0.0 是一个特殊的 IPv4 地址,意思是“无处不在”;您需要监听“everywhere”以接受来自容器外部的连接,但连接到“everywhere”或在 URL 中包含 0.0.0.0 是没有意义的。
-
不要在浏览器中连接到 0.0.0.0:5001,连接到 127.0.0.1:5001
-
谢谢@jbabtieu,我终于让它工作了。解决方案是让 docker 从 0.0.0.0:5001 开始,但在 windows 的 chrome 浏览器上使用 127.0.0.1:5001 来访问该站点。我很困惑,因为在 linux 中你只会让 docker 从 0.0.0.0:5001 开始,然后在 linux 的浏览器中尝试 0.0.0.0:5001