Docker 正在运行,但我无法访问 localhost - Flask 应用程序

标签 docker flask

我构建了 Flask 应用程序,并尝试使其在 Docker 文件上运行。

我运行两个命令:

1)

docker build -t my-api-docker:latest .

2)

docker run -p 5000:5000 my-api-docker 

两者都运行没有错误,终端上的输出是经典的 Flask:

 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

但是

如果我访问:http://localhost:5000如果表明:

The page is not working

需求.txt

Flask==1.1.1
requests==2.20.1
pandas==0.23.4

Dockerfile

FROM python:3.7
RUN pip install --upgrade pip

COPY ./requirements.txt /app/requirements.txt

WORKDIR /app

RUN pip install -r requirements.txt

COPY . /app

EXPOSE 5000

CMD [ "flask", "run" ]

最佳答案

它不应该与容器本地主机绑定(bind),即

Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

更改 Dockerfile 中的 CMD

CMD [ "flask", "run", "--host=0.0.0.0" ]

CMD ["python3", "-m", "flask", "run", "--host=0.0.0.0"] 

或替换您的代码内部

app.run(host='0.0.0.0').

关于Docker 正在运行,但我无法访问 localhost - Flask 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58209583/

相关文章:

docker-compose.yml : Why does restart "no" have to have quotation marks?

Docker 卷容器存储在不同驱动器中

Docker - 减少拉取大小

python - Flask-PyMongo : how come "self._Collection__database"?

python - Flask-SQLAlchemy:如何根据用户的角色和团队进行查询?

python - X-Forwarded-Proto 和 Flask

apache - 在 docker-compose 中运行 bash 脚本

Heroku 上的 Python bcrypt 包给出 AttributeError : 'module' object has no attribute 'ffi'

python - 基于 Flask-wtf 的登录表单的 csrf 失败错误

docker - `docker pull` 从私有(private) gitlab 注册表返回 `denied: access forbidden`