无法使用docker容器加载python flask API
我正在尝试学习使用API的Docker容器。我使用flask创建了一个简单的Hello World python REST API:无法使用docker容器加载python flask API,python,api,docker,flask,Python,Api,Docker,Flask,我正在尝试学习使用API的Docker容器。我使用flask创建了一个简单的Hello World python REST API: from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" if __name__ == '__main__': app.run(host="127.0.0.1", debug=True, port=8080)
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == '__main__':
app.run(host="127.0.0.1", debug=True, port=8080)
当我运行脚本并转到
这是我的Dockerfile:
# Use an official Python runtime as a parent image
FROM python:2.7-slim
# Set the working directory to /app
WORKDIR /hello_world
# Copy the current directory contents into the container at /app
ADD . /hello_world
# Install any needed packages specified in requirements.txt
RUN pip install --trusted-host pypi.python.org -r requirements.txt
EXPOSE 8080
# Define environment variable
ENV NAME World
# Run app.py when the container launches
CMD ["python", "hello_world.py"]
requirements.txt:
Flask
我的当前目录包含Dockerfile、hello_world.py和requirements.txt
我可以使用docker build-t hello\u world成功构建映像。“
使用docker run-p 8080:8080-t hello_world运行它会得到以下输出:
Serving Flask app "hello_world" (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: on
* Running on http://127.0.0.1:8080/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 985-433-141
当我试着去的时候,我得到了“够不到这一页”“错误。你知道我做错了什么吗?谢谢。尝试在0.0.0.0上运行应用程序,看看是否有帮助。我知道如果你在两台机器之间工作,那会有不同,但我不确定它是否适用于集装箱,请仔细阅读警告!这么愚蠢的问题。。。你在哪里输入127.0.0.1?因为如果它不在实际的docker实例中,您将遇到错误的IP。相反,你试着键入docker虚拟机本身的IP地址了吗?那么Rking14,有帮助吗?@Ben给出了正确的答案
0.0.0.0
可以工作,但当您将Flask应用程序装箱时,127.0.0.1
不能工作127.0.0.1
是容器的环回而不是主机的环回。或者,您可以使用--net=host
运行容器,并保留127.0.0.1
。