Docker安装Airflow
环境
系统:Ubuntu 22.04.2 LTS
docker Version:20.10.21
docker-compose version 1.29.2,
python3 --version Python 3.10.6
1、 安装docker
1.1先更新系统
sudo apt-get update
sudo apt-get upgrade
1.2安装docker:
apt-get install docker.io
1.3查看docker版本:
docker version
1.4 将当前用户加入docker这个group
sudo usermod -aG docker $USER
1.5 验证是否添加成功
groups 或者 id -nG
1.6 重启docker
sudo service docker restart
1.7 验证docker 是否安装成功
docker version 或 docker info
第一个命令“docker version”将列出已安装的Docker版本,以及客户端和服务端的详细信息。如果输出中没有错误,则说明Docker已成功安装。
第二个命令“docker info”将显示有关Docker daemon(Docker守护程序)的详细信息,包括系统信息、容器信息和镜像信息等。同样,如果输出中没有错误,则说明Docker已成功安装。
1.8修改docker配置文件,使得docker能被远程访问
vim /lib/systemd/system/docker.service
修改为
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
1.9重载守护进程以及重启Docker:
sudo systemctl daemon-reload
sudo service docker restart
1.20安装 docker-compose
sudo apt-get install -y docker-compose
验证安装是否成功
docker-compose --version
2.安装 airflow
2.1 新建 airflow 文件夹
设置正确的Airflow用户
在Linux中,需要知道user id 以及设置group id为0,否则在dags、 logs、 plugins中的文件将由root用户创建。这里我们需要配置AIRFLOW_UID
mkdir -p /usr/local/airflow
cd /usr/local/airflow
mkdir -p ./dags ./logs ./plugins
echo -e "AIRFLOW_UID=$(id -u)" > .env
备注:
./dags 我们可以将我们写的DAG文件放置到这里。
./logs 存放来源于任务执行器与调度器的日志。
./plugins 存放一些我们自定义的插件。
2.2要在 Docker Compose 上部署 Airflow,
官网上直该获取 docker-compose.yaml。
地址:
curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.6.0/docker-compose.yaml'
备注:如果网络超时就手动下载在上传到服务器
初始化数据库
docker-compose up airflow-init
运行Airflow 启动所有服务 #建议第一次运行时不要加-d,查看日志运行
docker-compose up -d
#Ctrl+C停止,然后重新启动一下
docker-compose down
docker-compose up -d
登录airflow
地址:http://localhost:8080
登录名/密码 :airflow airflow
检查容器状态
docker ps
3 常用命令
启动Airflow服务: docker-compose up
后台启动Airflow服务: docker-compose up -d
停止Airflow服务: docker-compose down
列出正在运行的Airflow容器: docker ps
查看镜像 docker images
查看docker状态 sudo systemctl status docker
进入某个Airflow容器的终端: docker exec -it <container_name> bash 备注:<container_name>为容器名或ID
显示Airflow服务的日志: docker-compose logs [-f] [service_name] 备注: -f参数表示实时跟踪日志,service_name参数表示服务名,默认为所有服务。
构建Airflow镜像 docker-compose build
清除未使用的镜像、容器、网络和卷: docker system prune
查看Airflow所在的网络IP地址: docker network inspect airflow-stack_airflow-net | grep Gateway 备注:irflow-stack_airflow-net表示Docker Compose文件中定义的Airflow网络名
docker 保存镜像 docker save -o airflow2.tar apache/airflow:2.6.0
tar 文件导入到另一台机器上 docker load -i airflow2.tar
可以参考文献:
https://github.com/puckel/docker-airflow
https://blog.csdn.net/qq_35491275/article/details/121981215
https://blog.51cto.com/helpdesk/5651419?articleABtest=1
CSDN 狗都不用的,欢迎各位大佬指点不足支持,一起学习和交流
QQ 897252348