Docker 摆设 Flask 应用 - 构建简朴的 Python Web 服务

饭宝  金牌会员 | 2024-12-30 22:27:37 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 890|帖子 890|积分 2670

Docker 摆设 Flask 应用 - 构建简朴的 Python Web 服务


目录


  • 弁言
  • Flask 应用概述

    • 2.1 Flask 简介
    • 2.2 Flask 项目的基本布局

  • 创建 Flask 应用

    • 3.1 安装 Flask
    • 3.2 创建简朴的 Flask 应用

  • 编写 Dockerfile 摆设 Flask 应用

    • 4.1 创建 Dockerfile
    • 4.2 构建 Docker 镜像
    • 4.3 运行 Flask 容器

  • 通过 Docker Compose 摆设 Flask 应用

    • 5.1 创建 docker-compose.yml 文件
    • 5.2 利用 Docker Compose 启动应用

  • 访问 Flask 应用
  • 常见问题与办理方案
  • 竣事语

1. 弁言

在当代的 Web 开发中,Docker 提供了一种将应用及其依赖封装在容器中的方式,使得摆设、扩展和管理变得更加简朴与高效。在本篇文章中,我们将介绍怎样利用 Docker 摆设一个简朴的 Flask 应用,并结合 Docker Compose 来简化多个服务的管理。
Flask 是一个轻量级的 Python Web 框架,特别适合用来构建小型应用或原型。通过 Docker,我们可以将 Flask 应用及其环境独立封装,确保应用在差别环境中的划一性。

2. Flask 应用概述

2.1 Flask 简介

Flask 是一个基于 Python 的 Web 框架,它的核心非常简朴且易于扩展。它提供了一个轻量级的 Web 服务,可以快速构建 RESTful API 或 Web 应用。Flask 自己不包罗像数据库、验证、用户管理等功能,而是通过插件和扩展来增长这些功能。
2.2 Flask 项目的基本布局

一个典型的 Flask 项目布局可能如下所示:
  1. /flask-app
  2.     ├── app.py          # 主应用文件
  3.     ├── requirements.txt # 项目依赖
  4.     └── Dockerfile       # Docker 配置文件
复制代码


  • app.py:Flask 应用的核心代码。
  • requirements.txt:列出项目所需的 Python 库。
  • Dockerfile:用于构建 Flask 应用容器的配置文件。

3. 创建 Flask 应用

3.1 安装 Flask

起首,你需要创建一个 Python 虚拟环境并安装 Flask。可以通过以下下令安装 Flask:
  1. # 创建虚拟环境
  2. python3 -m venv venv
  3. # 激活虚拟环境(Linux/MacOS)
  4. source venv/bin/activate
  5. # 激活虚拟环境(Windows)
  6. venv\Scripts\activate
  7. # 安装 Flask
  8. pip install Flask
复制代码
3.2 创建简朴的 Flask 应用

在项目根目录下创建一个名为 app.py 的文件,并写入以下代码:
  1. from flask import Flask
  2. app = Flask(__name__)
  3. @app.route('/')
  4. def hello():
  5.     return "Hello, Docker!"
  6. if __name__ == '__main__':
  7.     app.run(host='0.0.0.0', port=5000)
复制代码
这段代码创建了一个简朴的 Flask 应用,界说了一个 / 路由,返回 "Hello, Docker!" 字符串。app.run(host='0.0.0.0') 使得应用能够在全部 IP 上监听哀求。

4. 编写 Dockerfile 摆设 Flask 应用

4.1 创建 Dockerfile

在项目根目录下创建一个 Dockerfile,并写入以下内容:
  1. # 使用官方 Python 镜像作为基础镜像
  2. FROM python:3.10-slim
  3. # 设置工作目录
  4. WORKDIR /app
  5. # 复制当前目录下的所有文件到容器的工作目录
  6. COPY . /app
  7. # 安装项目依赖
  8. RUN pip install --no-cache-dir -r requirements.txt
  9. # 设置 Flask 应用的环境变量
  10. ENV FLASK_APP=app.py
  11. ENV FLASK_RUN_HOST=0.0.0.0
  12. # 暴露 Flask 端口
  13. EXPOSE 5000
  14. # 运行 Flask 应用
  15. CMD ["flask", "run"]
复制代码
解释:


  • FROM python:3.10-slim:利用 Python 3.10 的官方 slim 镜像作为基础镜像。
  • WORKDIR /app:设置容器内的工作目录。
  • COPY . /app:将当前目录下的全部文件复制到容器的 /app 目录。
  • RUN pip install --no-cache-dir -r requirements.txt:安装项目的依赖。
  • ENV FLASK_APP=app.py:设置环境变量,使 Flask 知道哪个文件是应用的入口。
  • EXPOSE 5000:暴露 Flask 默认的 5000 端口。
  • CMD ["flask", "run"]:默认启动 Flask 应用。
4.2 构建 Docker 镜像

在包罗 Dockerfile 的目录下,运行以下下令来构建 Docker 镜像:
  1. docker build -t flask-app .
复制代码
该下令会构建一个名为 flask-app 的镜像。
4.3 运行 Flask 容器

构建完成后,利用以下下令启动容器:
  1. docker run -p 5000:5000 flask-app
复制代码
这会将容器的 5000 端口映射到主机的 5000 端口。如今,打开欣赏器访问 http://localhost:5000,你应该会看到 "Hello, Docker!" 的消息。

5. 通过 Docker Compose 摆设 Flask 应用

5.1 创建 docker-compose.yml 文件

为了方便管理多个容器,我们可以利用 Docker Compose。在项目根目录下创建一个 docker-compose.yml 文件,内容如下:
  1. version: '3'
  2. services:
  3.   web:
  4.     build: .
  5.     ports:
  6.       - "5000:5000"
  7.     environment:
  8.       - FLASK_APP=app.py
  9.       - FLASK_RUN_HOST=0.0.0.0
  10.     volumes:
  11.       - .:/app
复制代码
docker-compose.yml 中界说了一个服务 web,它会构建当前目录下的 Docker 镜像,并将容器的 5000 端口映射到主机的 5000 端口。我们还指定了 Flask 的环境变量和工作目录的挂载。
5.2 利用 Docker Compose 启动应用

在包罗 docker-compose.yml 的目录下,运行以下下令启动应用:
  1. docker-compose up
复制代码
这会启动 Docker Compose 配置中的全部服务,并将 Flask 应用启动在容器中。访问 http://localhost:5000 仍旧可以看到 "Hello, Docker!"。

6. 访问 Flask 应用

无论是利用 docker run 还是 Docker Compose 启动容器,都可以通过 http://localhost:5000 在欣赏器中访问 Flask 应用。假如你希望摆设到远程服务器,只需更换 localhost 为服务器的 IP 地点,确保服务器的 5000 端口对外开放。

7. 常见问题与办理方案

7.1 Docker 容器无法启动

确保 Dockerfile 中的全部下令执行正确,特别是 pip install 过程中是否有错误。假如安装依赖时失败,检查 requirements.txt 文件是否正确,并确保全部依赖库的版本兼容。
7.2 应用无法访问

确认容器端口和主机端口是否正确映射。假如 Flask 应用在容器中监听的是 5000 端口,需要通过 -p 5000:5000 映射到主机的 5000 端口。
7.3 代码修改后未生效

利用 Docker Compose 时,假如修改了代码,运行时容器中的代码不会自动更新。可以通过以下下令重建并重启容器:
  1. docker-compose up
  2. --build
复制代码

8. 竣事语

本文介绍了怎样通过 Docker 摆设 Flask 应用,从基础的 Flask 应用创建,到利用 Dockerfile 构建镜像,最后利用 Docker Compose 摆设并管理服务。借助 Docker,Flask 应用的摆设变得更加便捷,可以轻松地将其放置在任何支持 Docker 的环境中。通过这种方式,我们可以简化开发、测试和生产环境中的摆设流程,使得应用的运行环境更加统一,淘汰“在我电脑上可以运行”的问题。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

饭宝

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表