You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下Docker Compose部署Airflow:迁移SQLite数据库至本地

把Airflow容器内的SQLite数据库迁移到Windows本地

步骤1:确认容器内SQLite文件路径

Airflow默认的SQLite数据库文件路径为/opt/airflow/airflow.db,先验证你的容器是否使用该路径:

# 执行命令查看运行中的容器,获取Airflow容器名称或ID
docker ps
# 进入容器(替换<container-name-or-id>为实际容器名/ID)
docker exec -it <container-name-or-id> bash
# 检查文件是否存在
ls /opt/airflow/airflow.db

如果路径不同,可查看容器内/opt/airflow/airflow.cfg配置文件里的sql_alchemy_conn项,确认实际数据库路径。

步骤2:将容器内数据库文件复制到本地

在Windows的PowerShell或CMD中执行命令,把容器内的数据库文件复制到本地指定目录(比如D:\airflow-local-db,可自行替换):

# 替换<container-name-or-id>和<local-path>为实际值
docker cp <container-name-or-id>:/opt/airflow/airflow.db <local-path>
# 示例:docker cp airflow-webserver-1:/opt/airflow/airflow.db D:\airflow-local-db\airflow.db

步骤3:修改Docker Compose配置

找到你的docker-compose.yml文件,在Airflow核心服务(webserver、scheduler、worker)的volumes节点下添加本地路径到容器路径的映射:

services:
  webserver:
    volumes:
      # 保留原有挂载项,新增以下映射
      - D:/airflow-local-db/airflow.db:/opt/airflow/airflow.db
  scheduler:
    volumes:
      - D:/airflow-local-db/airflow.db:/opt/airflow/airflow.db
  worker:
    volumes:
      - D:/airflow-local-db/airflow.db:/opt/airflow/airflow.db

注意:Windows路径在Docker Compose中需用斜杠/或双反斜杠\\,替换成你实际的本地文件路径。

步骤4:重启Airflow服务

在docker-compose.yml所在目录执行命令,重启服务使挂载生效:

docker-compose down
docker-compose up -d

步骤5:验证迁移结果

重启后可通过两种方式验证:

  1. 打开Airflow UI,查看原有DAG的运行记录、任务实例是否正常显示;
  2. 进入容器检查数据库文件状态:
docker exec -it <container-name-or-id> bash
# 查看文件挂载关联
ls -l /opt/airflow/airflow.db
# 查询数据库数据,验证完整性
sqlite3 /opt/airflow/airflow.db "SELECT COUNT(*) FROM task_instance;"

注意事项:

  • 确保本地文件夹权限允许Docker容器读写,Windows下可右键文件夹→属性→安全,给当前用户添加完全控制权限;
  • 如果后续修改本地数据库文件,需重启Airflow服务才能让容器识别到变更。

内容的提问来源于stack exchange,提问作者gosia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 05:15:46