Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用docker容器加载python flask API_Python_Api_Docker_Flask - Fatal编程技术网

无法使用docker容器加载python flask 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)

我正在尝试学习使用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)
当我运行脚本并转到

这是我的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