前置条件
- centos7.9+
安装配置
2.1 安装docker
添加源
sudo yum -y install yum-utils
sudo yum -y install aria2
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
卸载系统之前可能安装的 docker(防止冲突)
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
安装必须的依赖
sudo yum install -y wget device-mapper-persistent-data lvm2
安装 docker,以及 docker-cli
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose
启动 docker
sudo systemctl start docker
sudo systemctl enable docker
2.2 安装docker-compose
安装docker-compose
sudo aria2c -d /usr/local/bin -s 4 -x 4 "https://github.com/docker/compose/releases/download/v2.32.1/docker-compose-linux-x86_64"
添加软链接
sudo mv /usr/local/bin/docker-compose-linux-x86_64 /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# 备份以前docker-compose,如果没有会报错,可忽略
sudo mv /usr/bin/docker-compose /usr/bin/docker-compose.bak
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
2.3 部署Airflow
创建并进入工作目录
/opt/module/airflow/airflow-2.10.5可修改为自己需要创建的目录
export $AIRFLOW_HOME=/opt/module/airflow/airflow-2.10.5
mkdir -p $AIRFLOW_HOME/{dags,config,logs,plugins,data}
mkdir -p $AIRFLOW_HOME/data/postgres
cd $AIRFLOW_HOME
更新docker-compose变量
这些变量和会和之后的docker-compose中的部分变量匹配,会被docker-compose读取成为默认参数
AIRFLOW_UID:默认用户id,随便写一个即可
AIRFLOW_PROJ_DIR:Airflow的目录,docker-compose会将这个目录挂载到容器中
AIRFLOW_IMAGE_NAME:Airflow的镜像版本
_AIRFLOW_WWW_USER_USERNAME:Airflow web ui用户名
_AIRFLOW_WWW_USER_PASSWORD:Airflow web ui密码
cat << EOF | tee tee .env
AIRFLOW_UID=50000
AIRFLOW_PROJ_DIR=$AIRFLOW_HOME
AIRFLOW_IMAGE_NAME=apache/airflow:2.10.5
_AIRFLOW_WWW_USER_USERNAME=xu
_AIRFLOW_WWW_USER_PASSWORD=123456
EOF
创建docker-compose文件
aria2c -d $AIRFLOW_HOME -s 4 -x 4 "https://airflow.apache.org/docs/apache-airflow/2.10.5/docker-compose.yaml"
无法下载也可以直接使用:
修改配置文件
根据自己的需求修改,不修改直接使用默认配置也是可以的。
vim docker-compose.yaml
x-airflow-common:
environment:
AIRFLOW__CORE__LOAD_EXAMPLES: 'false' # 不加载样例数据
services:
airflow-webserver:
ports:
- "18088:8080" # 将容器的8080端口映射到主机的18088端口,根据自己情况修改
postgres:
# 可以不修改,默认会将数据挂载到docker卷中,也可以将postgres的数据目录挂载到指定目录里面
volumes:
- /opt/module/airflow/airflow-2.10.5/data/postgres:/var/lib/postgresql/data
2.4 初始化Airlofw数据
注:均需在$AIRFLOW_HOME目录下运行
初始化
docker-compose up airflow-init
启动容器
docker-compose up -d
2.5 测试
登录WEB UI
2.6 停止与卸载
注:均需在$AIRFLOW_HOME目录下运行
停止
docker-compose stop
卸载
docker-compose rm