我在Docker容器中运行基于Flask的API,该容器在端口5000上公开,但是没有请求甚至到达API。
-p 5000:5000
来运行API首选端口。不要使用HTTPS,而是在容器上安装ssh。 (因此,除非您使用像我这样的自定义Dockerfile,否则您需要启用SUDO)http GET http://localhost:5000/customers/1
) - > 此失败并获取不同的错误消息
Python based urlib request (IOError: ('http protocol error', 0, 'got a bad status line', None))
http: error: ConnectionError: HTTPConnectionPool(host='localhost', port=5000): Max retries exceeded with url: /filterReplies/aaaaa/aaaa (Caused by <class 'http.client.RemoteDisconnected'>: Remote end closed connection without response)
)wget http://localhost:5000
(获取Connecting to localhost (localhost)|127.0.0.1|:5000... connected.
HTTP request sent, awaiting response... No data received.
Retrying.
)和wget http://localhost:1234
(获取Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8888... failed: Connection refused.
)之间存在差异,因此端口在某个级别上是开放的,但只有似乎没有什么在另一边等待? 答案 0 :(得分:2)
绑定到0.0.0.0
将在任何可用的界面中绑定您的应用程序,localhost不会。有一篇帖子描述了localhost
和0.0.0.0
之间的区别,如果我发现我会更新此帖子。
答案 1 :(得分:1)
所有功劳都归ipinak用户建议将应用绑定到0.0.0.0
,这确实解决了问题。
有趣的是,该应用程序仍然响应localhost。但我现在要接受它。
答案 2 :(得分:1)
这里似乎没有代码示例,因此我认为我应该添加一些内容以“绑定”到0.0.0.0
来解决HTTP request sent, awaiting response... No data received.
问题。
app = flask.Flask(__name__)
app.config['DEBUG'] = True
app.run(host='0.0.0.0')
app.run(host='0.0.0.0')
是重要的一环。
这应该可以解决HTTP request sent, awaiting response... No data received.
问题。