Airflow-Docker


要在 Docker 中启动 Apache Airflow,你可以按照以下步骤操作。以下是基于 Airflow 官方推荐的 Docker Compose 方法的详细步骤:

1. 确保安装了 Docker 和 Docker Compose

确保你的系统已经安装了 Docker 和 Docker Compose。如果没有安装,可以参考以下命令:

  • 安装 Dockerbash curl -fsSL https://get.docker.com | sh

  • 安装 Docker Composebash sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose

验证安装:

docker --version
docker-compose --version

2. 创建 Airflow 工作目录

创建一个目录来存放 Airflow 的配置文件和数据:

mkdir -p ~/airflow
cd ~/airflow

3. 下载 Airflow 的 Docker Compose 文件

从 Airflow 官方仓库下载 docker-compose.yaml 文件:

curl -LfO "https://airflow.apache.org/docs/apache-airflow/2.6.3/docker-compose.yaml"

注意2.6.3 是 Airflow 的版本号,你可以根据需要替换为最新版本。

4. 启动 Airflow

运行以下命令启动 Airflow:

docker-compose up
  • 如果你想在后台运行,可以加上 -d 参数: bash docker-compose up -d

5. 访问 Airflow Web 界面

Airflow 的 Web 界面默认运行在 http://localhost:8080。打开浏览器访问该地址。

默认的管理员用户名和密码是: - 用户名admin - 密码admin

6. 配置 Airflow

在首次启动时,Airflow 会根据 docker-compose.yaml 文件中的配置初始化环境。你可以通过修改 docker-compose.yaml 文件来自定义配置,例如: - 修改 Airflow 的版本。 - 设置环境变量(如 AIRFLOW__CORE__EXECUTOR)。 - 挂载本地目录到容器中。

7. 常见问题

端口冲突

如果端口 8080 被占用,可以修改 docker-compose.yaml 文件中的端口映射:

ports:
  - "8081:8080"

然后重新启动:

docker-compose down
docker-compose up -d

权限问题

如果遇到权限问题(如无法写入 airflow.db 文件),可以更改目录权限:

chmod -R 777 ~/airflow

查看日志

如果启动失败,可以查看日志:

docker-compose logs

8. 停止和清理

停止 Airflow:

docker-compose down

清理所有数据:

docker-compose down -v

9. 进一步配置

  • 设置管理员用户:在 docker-compose.yaml 中添加以下环境变量: yaml environment: _AIRFLOW_WWW_USER_CREATE: "true" _AIRFLOW_WWW_USER_USERNAME: "admin" _AIRFLOW_WWW_USER_PASSWORD: "your_password"

  • 修改 Airflow 版本:在 docker-compose.yaml 中修改 AIRFLOW_IMAGE_NAME 的版本: yaml AIRFLOW_IMAGE_NAME: "ghcr.io/apache/airflow:2.6.3"

  • 启用 PostgreSQL:默认使用 SQLite,你可以修改 docker-compose.yaml 文件来使用 PostgreSQL 或 MySQL。

10. 参考文档

通过以上步骤,你应该能够成功启动 Airflow 并开始使用它!如果遇到问题,可以查看 Airflow 的官方文档或社区支持。