ubuntu/airflowApache Airflow是一个用于程序化创作、调度和监控工作流的平台。此镜像基于Ubuntu构建,包含Python和多种提供程序,来自Canonical,接收安全更新并会滚动更新至新版本的Airflow或Ubuntu。本仓库可免费使用,不受每用户速率限制。
amd64架构。pip install。airflow standalone模式可初始化本地元数据库、创建默认管理员用户,并启动webserver、调度器等核心组件(适用于开发环境)。!LTS
LTS通道提供长达5年的免费安全维护。
!ESM
ESM通道通过Canonical的受限仓库提供长达10年的客户安全维护。
| 通道标签 | 支持期限 | 当前版本 | 架构 |
|---|---|---|---|
3.1-24.04_edge | - | Airflow 3.1 基于 Ubuntu 24.04 LTS | amd64 |
track_risk |
通道标签按稳定性排序:stable、candidate、beta、edge。风险较高的通道默认可用(如列出beta,则可拉取edge;列出candidate,则可拉取beta和edge;列出stable,则四个通道均可用)。镜像会按edge→beta→candidate→stable的顺序更新。
若需商业 redistribution,或需要ESM及未列出的通道/版本,请联系Canonical团队(或发送邮件至***)。
shdocker run -d --name airflow-container -e TZ=UTC -p 8080:8080 -e AIRFLOW_HOME=/opt/airflow -v /path/to/dags:/opt/airflow/dags -v /path/to/airflow.cfg:/opt/airflow/airflow.cfg ubuntu/airflow:3.1-24.04_edge
该镜像使用Pebble(轻量级服务管理器)作为PID 1进程,监督镜像中定义的Airflow服务。
airflow服务配置如下:
command: /usr/bin/airflow standalone startup: enabled
airflow standalone会初始化本地元数据库、创建默认管理员用户,并在一个进程组中启动webserver、调度器及其他核心组件(适用于开发环境)。
/opt/airflow,包含airflow.cfg、airflow.db(独立模式默认数据库)、日志和dags/。-v ./dags:/opt/airflow/dags # 挂载自定义DAG目录 -v ./airflow.cfg:/opt/airflow/airflow.cfg # 挂载自定义配置文件
镜像预安装多种提供程序(Amazon、GCP、Kubernetes、MySQL、Postgres等),常见集成可直接使用,无需在容器内执行pip install。
Airflow支持通过环境变量或airflow.cfg进行大量配置。完整配置项可参考官方配置参考文档。
| 参数 | 描述 |
|---|---|
-e AIRFLOW_HOME=/opt/airflow | 容器内Airflow运行时状态根目录(包含配置、数据库、日志、DAG等),镜像默认设为/opt/airflow。 |
-e AIRFLOW__CORE__LOAD_EXAMPLES=false | 是否加载Airflow自带的DAG示例。入门时可用,生产环境建议设为false。 |
-e AIRFLOW__CORE__EXECUTOR=LocalExecutor | Airflow使用的执行器类型,可选LocalExecutor、CeleryExecutor、KubernetesExecutor或自定义执行器的完整导入路径。 |
-e AIRFLOW__DATABASE__SQL_ALCHEMY_CONN=postgresql+psycopg2://airflow:airflow@db:5432/airflow | Airflow元数据库的SQLAlchemy连接字符串。独立模式默认使用本地SQLite,生产环境建议使用Postgres或MySQL,可通过此参数指定外部数据库。 |
-e AIRFLOW__API__SECRET_KEY=change-me | API服务器使用的密钥,应尽可能随机。多实例部署时需确保所有实例使用相同密钥,否则可能出现“CSRF session token is missing”错误。 |
-e AIRFLOW__API__BASE_URL=[***] | API服务器的基础URL。 |
-e AIRFLOW__CORE__MAX_ACTIVE_TASKS_PER_DAG=16 | 每个DAG运行中允许并发执行的最大任务实例数。 |
-p 8080:8080 | Airflow Webserver UI端口(HTTP),用于浏览器访问。 |
-p 8794:8794 | Triggerer日志服务器端口,用于Triggerer的日志流式传输和收集,定义于官方Helm Chart的ports.triggererLogs。 |
-p 8793:8793 | Worker日志服务器端口,用于分布式环境中Worker的日志流式传输和收集,定义于官方Helm Chart的ports.workerLogs。 |
-v /path/to/dags:/opt/airflow/dags | 挂载主机DAG目录至容器,无需重建镜像即可更新DAG,/opt/airflow/dags目录下的文件会被自动发现。 |
-v /path/to/logs:/opt/airflow/logs | 挂载日志目录以持久化任务日志(便于调试和重启)。 |
-v /path/to/airflow.cfg:/opt/airflow/airflow.cfg | 挂载自定义airflow.cfg以覆盖独立模式自动生成的配置文件。 |
-v /path/to/requirements.txt:/requirements.txt | (可选)如需扩展镜像并在运行时安装额外Python依赖,可挂载此文件并在初始化钩子或派生镜像中安装。 |
查看容器日志:
shdocker logs -f airflow-container
进入容器交互式shell:
shdocker exec -it airflow-container /bin/bash
如发现镜像缺陷或需请求功能,请提交bug至:
[***]
bug标题格式为“airflow: <问题摘要>”,并需包含所用镜像的摘要,可通过以下命令获取:
shdocker images --no-trunc --quiet ubuntu/airflow:<tag>
以下通道(标签)不再更新,请升级至较新通道;如无法升级,请联系我们。
| 通道 | 版本 | 生命周期结束(EOL) | 升级路径 |
|---|---|---|---|
track |



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务