轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
工单支持镜像收录Run 助手IP 归属地密码生成Npm 源Pip 源
帮助
常见问题我要吐槽
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
tiangolo/uwsgi-nginx-flask
官方博客使用教程热门镜像工单支持
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 - 国内开发者首选的专业 Docker 镜像下载加速服务平台 - 官方QQ群:13763429 👈点击免费获得技术支持。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

uwsgi-nginx-flask Docker 镜像下载 - 轩辕镜像

uwsgi-nginx-flask 镜像详细信息和使用指南

uwsgi-nginx-flask 镜像标签列表和版本信息

uwsgi-nginx-flask 镜像拉取命令和加速下载

uwsgi-nginx-flask 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

uwsgi-nginx-flask
tiangolo/uwsgi-nginx-flask
自动构建

uwsgi-nginx-flask 镜像详细信息

uwsgi-nginx-flask 镜像标签列表

uwsgi-nginx-flask 镜像使用说明

uwsgi-nginx-flask 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

包含uWSGI和Nginx的Docker镜像,用于在单容器中运行Python Flask应用。
532 收藏0 次下载activetiangolo镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

uwsgi-nginx-flask 镜像详细说明

uwsgi-nginx-flask 使用指南

uwsgi-nginx-flask 配置说明

uwsgi-nginx-flask 官方文档

uwsgi-nginx-flask Docker镜像文档

镜像概述和主要用途

uwsgi-nginx-flask是一个集成uWSGI和Nginx的Docker镜像,专为在单个容器中运行Python Flask Web应用设计。该镜像预配置了生产环境常用的部署组件,将Flask应用服务器(uWSGI)与反向代理服务器(Nginx)结合,简化了Flask应用的部署流程,适用于需要快速搭建稳定Web服务的场景。

核心功能和特性

  • 组件集成:内置uWSGI(Python应用服务器)和Nginx(反向代理),无需单独配置两者协作
  • 多Python版本支持:提供Python 3.10+系列版本标签,适配不同应用需求
  • 单容器部署:应用、uWSGI、Nginx运行于同一容器,减少基础设施依赖
  • 动态进程管理:uWSGI自动调整工作进程数量,平衡资源占用与并发处理能力
  • 静态文件优化:Nginx直接处理静态资源请求,减轻Python应用负担
  • 灵活配置:通过环境变量和自定义配置文件支持深度定制

支持的标签与已弃用标签

支持的标签

标签Dockerfile链接
python3.12, latestDockerfile
python3.11Dockerfile
python3.10Dockerfile
python3.9Dockerfile

已弃用标签

⚠️ 以下标签不再维护,已从GitHub仓库移除,但Docker Hub可能仍保留最后推送版本:

  • python3.8
  • python3.8-alpine
  • python3.7
  • python3.6
  • python2.7

这些版本的最后日期标签:

  • python3.8-2024-10-28
  • python3.8-alpine-2024-03-11
  • python3.7-2024-10-28
  • python3.6-2022-11-25
  • python2.7-2022-11-25

注意:镜像提供每日构建标签,如需固定版本可选择日期标签(如tiangolo/uwsgi-nginx-flask:python3.7-2019-10-14)。

使用场景和适用范围

适用场景

  1. 简单Flask应用部署
    无需复杂集群管理,单容器即可满足中小流量应用需求,适合个人项目或内部工具。

  2. Docker Compose单服务器部署
    在单台服务器上使用Docker Compose管理服务时,可利用容器内进程管理实现负载均衡,避免集群级工具(如Kubernetes)的复杂性。

  3. 单容器多进程指标收集
    需在容器内汇总多工作进程指标(如Prometheus监控)时,单容器部署可简化指标采集逻辑。

不适用场景(警告)

⚠️ Kubernetes或集群环境:在集群环境中,建议通过集群工具(如Kubernetes)管理容器复制和负载均衡,而非依赖容器内进程管理。此时应构建仅包含单个应用进程的镜像(如使用Gunicorn),通过集群调度实现水平扩展。

快速入门

基本快速入门

  1. 项目结构

    .
    ├── app
    │   └── main.py
    └── Dockerfile
    
  2. 编写Flask应用(app/main.py)

    from flask import Flask
    app = Flask(__name__)
    
    @app.route("/")
    def hello():
        return "Hello World from Flask"
    
    if __name__ == "__main__":
        app.run(host='0.0.0.0', debug=True, port=80)  # 仅用于开发调试
    
  3. 编写Dockerfile

    FROM tiangolo/uwsgi-nginx-flask:python3.12
    
    # 复制应用代码
    COPY ./app /app
    
  4. 构建并运行镜像

    # 构建镜像
    docker build -t my-flask-app .
    
    # 运行容器
    docker run -d --name my-flask-container -p 80:80 my-flask-app
    
  5. 访问应用
    打开浏览器访问 [***] 或服务器IP,应显示"Hello World from Flask"。

大型Python包项目快速入门

对于结构化Python包项目,需调整目录结构并配置uWSGI:

  1. 项目结构

    .
    ├── app
    │   ├── app
    │   │   ├── __init__.py
    │   │   ├── main.py
    │   │   └── static  # 静态文件目录
    │   └── uwsgi.ini    # uWSGI配置文件
    └── Dockerfile
    
  2. 配置uWSGI(app/uwsgi.ini)

    [uwsgi]
    module = app.main  # 模块路径:app/main.py
    callable = app     # Flask应用实例名称
    
  3. Dockerfile配置

    FROM tiangolo/uwsgi-nginx-flask:python3.12
    
    # 配置静态文件路径(如需要)
    ENV STATIC_PATH /app/app/static
    
    # 复制应用代码
    COPY ./app /app
    

单页应用(SPA)部署说明

不建议将前端代码与Flask后端打包在同一容器中。推荐采用多阶段构建分离前后端:

  • 前端:使用Node.js容器编译代码,输出到Nginx容器
  • 后端:使用本镜像部署Flask应用
  • 反向代理:通过Traefik等工具统一入口并配置HTTPS

详细配置说明

环境变量配置

uWSGI相关环境变量

环境变量默认值说明
UWSGI_CHEAPER2初始工作进程数
UWSGI_PROCESSES16最大工作进程数(需大于UWSGI_CHEAPER)
UWSGI_INI/app/uwsgi.iniuWSGI配置文件路径
UWSGI_THREADS1每个工作进程的线程数

Nginx相关环境变量

环境变量默认值说明
LISTEN_PORT80容器监听端口
NGINX_MAX_UPLOAD0最大上传文件大小(0表示无限制,单位:m=兆字节,g=千兆字节)
NGINX_WORKER_PROCESSES1Nginx工作进程数(设为auto可自动检测CPU核心数)
NGINX_WORKER_CONNECTIONS1024每个工作进程的最大连接数
NGINX_WORKER_OPEN_FILES1024每个工作进程的最大打开文件数(需大于NGINX_WORKER_CONNECTIONS)

应用相关环境变量

环境变量默认值说明
STATIC_PATH/app/staticNginx静态文件目录路径
STATIC_URL/static静态文件访问URL前缀
STATIC_INDEX0是否将/static/index.html作为根路径响应(1=启用,0=禁用,不推荐SPA使用)

自定义uWSGI配置

通过替换uwsgi.ini文件自定义uWSGI行为:

  1. 创建自定义uwsgi.ini(如启用线程支持)

    [uwsgi]
    module = main
    callable = app
    enable-threads = true  # 启用线程
    thread-stacksize = 128k  # 线程栈大小
    
  2. Dockerfile中复制配置文件

    FROM tiangolo/uwsgi-nginx-flask:python3.12
    
    # 复制自定义uwsgi.ini
    COPY ./uwsgi.ini /app/uwsgi.ini
    
    # 复制应用代码
    COPY ./app /app
    

自定义Nginx配置

扩展Nginx配置

添加*.conf文件到/etc/nginx/conf.d/目录扩展配置(不覆盖默认配置):

FROM tiangolo/uwsgi-nginx-flask:python3.12

# 添加自定义Nginx配置
COPY ./custom-nginx.conf /etc/nginx/conf.d/custom.conf

COPY ./app /app

完全覆盖Nginx配置

通过/app/nginx.conf完全替换Nginx配置:

FROM tiangolo/uwsgi-nginx-flask:python3.12

# 复制自定义Nginx配置(完全覆盖默认配置)
COPY ./nginx.conf /app/nginx.conf

COPY ./app /app

前置启动脚本(prestart.sh)

创建/app/prestart.sh可在应用启动前执行命令(如数据库迁移):

  1. 创建脚本(app/prestart.sh)

    #! /usr/bin/env bash
    
    # 示例:等待数据库启动
    sleep 10
    
    # 示例:执行数据库迁移
    flask db upgrade
    
  2. 添加执行权限并复制

    FROM tiangolo/uwsgi-nginx-flask:python3.12
    
    # 复制前置脚本并添加权限
    COPY ./app/prestart.sh /app/prestart.sh
    RUN chmod +x /app/prestart.sh
    
    COPY ./app /app
    

部署示例

Docker Compose配置示例

version: '3'

services:
  flask-app:
    build: .
    ports:
      - "80:80"
    environment:
      - UWSGI_CHEAPER=4           # 初始工作进程数4
      - UWSGI_PROCESSES=16        # 最大工作进程数16
      - NGINX_MAX_UPLOAD=10m      # 最大上传10MB
      - STATIC_PATH=/app/app/static  # 静态文件路径
    volumes:
      - ./app:/app  # 开发环境热更新(生产环境移除)
    restart: always

自定义端口部署示例

修改容器监听端口:

FROM tiangolo/uwsgi-nginx-flask:python3.12

# 配置监听端口
ENV LISTEN_PORT 8080
EXPOSE 8080  # 声明暴露端口

COPY ./app /app

运行命令:

docker run -d --name my-flask-container -p 8080:8080 my-flask-app

技术细节

该镜像基于tiangolo/uwsgi-nginx构建,默认配置:

  • uWSGI通过/app/uwsgi.ini加载应用,默认模块为main,可调用对象为app
  • Nginx通过反向代理将请求转发至uWSGI(默认监听127.0.0.1:3031)
  • 静态文件由Nginx直接处理,无需经过uWSGI和Python应用

所有配置文件和脚本在容器启动时动态生成,确保环境变量生效。

查看更多 uwsgi-nginx-flask 相关镜像 →

常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像免费版与专业版有分别支持哪些镜像?

免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

轩辕镜像下载加速使用手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

🔐

登录方式进行 Docker 镜像下载加速教程

通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤

🐧

Linux Docker 镜像下载加速教程

在 Linux 系统上配置轩辕镜像源,支持主流发行版

🖥️

Windows/Mac Docker 镜像下载加速教程

在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统

📦

Docker Compose 镜像下载加速教程

在 Docker Compose 中使用轩辕镜像加速,支持容器编排

📋

K8s containerd 镜像下载加速教程

在 k8s 中配置 containerd 使用轩辕镜像加速

🔧

宝塔面板 Docker 镜像下载加速教程

在宝塔面板中配置轩辕镜像加速,提升服务器管理效率

💾

群晖 NAS Docker 镜像下载加速教程

在 Synology 群晖NAS系统中配置轩辕镜像加速

🐂

飞牛fnOS Docker 镜像下载加速教程

在飞牛fnOS系统中配置轩辕镜像加速

📱

极空间 NAS Docker 镜像下载加速教程

在极空间NAS中配置轩辕镜像加速

⚡

爱快路由 ikuai Docker 镜像下载加速教程

在爱快ikuai系统中配置轩辕镜像加速

🔗

绿联 NAS Docker 镜像下载加速教程

在绿联NAS系统中配置轩辕镜像加速

🌐

威联通 NAS Docker 镜像下载加速教程

在威联通NAS系统中配置轩辕镜像加速

📦

Podman Docker 镜像下载加速教程

在 Podman 中配置轩辕镜像加速,支持多系统

📚

ghcr、Quay、nvcr、k8s、gcr 等仓库下载镜像加速教程

配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤

🚀

专属域名方式进行 Docker 镜像下载加速教程

无需登录即可使用轩辕镜像加速服务,更加便捷高效

需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429

商务:17300950906
|©2024-2025 源码跳动
商务合作电话:17300950906|Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.