본문 바로가기
Data 엔지니어링/Airflow

[Airflow] Airflow Docker 설치 방법

by imkus 2025. 1. 6.

Airflow Docker 설치 방법은 아래 링크 기반으로 작성되었습니다.

https://airflow.apache.org/docs/apache-airflow/stable/howto/docker-compose/index.html

 

Running Airflow in Docker — Airflow Documentation

 

airflow.apache.org

 

 

 

1. 시작하기 전에

Ubuntu 위에 Docker 설치가 완료 되었다고 가정하고 진행합니다.

Docker Compose v2.14.0 이상 설치되어 있어야 합니다.

Ubuntu 기반에서 Docker 설치 방법은 아래 링크를 참고 하시면 됩니다.

https://docs.docker.com/engine/install/ubuntu/

 

Ubuntu

Jumpstart your client-side server applications with Docker Engine on Ubuntu. This guide details prerequisites and multiple methods to install Docker Engine on Ubuntu.

docs.docker.com

 

 

 

 

2. Docker-compose.yaml 다운로드

도커 컴포즈는 한 개 이상의 컨테이너를 다루게 될 때 그 컨테이너들에 대한 설정 내용을 스크립트 한방으로 관리할 수 있게 해줍니다. 그 스크립트가 Docker-compose.yaml 입니다.

 

Airflow 자체도 컨테이너가 여러 개로 구성되어 있는데 그 컨테이너들이 이 파일에 포함되어 있습니다.

 

Ubuntu 터미널에서 Airflow 설치를 위한 적절한 위치로 이동하여 아래 내용을 복사 붙여넣기 하여 다운로드합니다.

curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.10.4/docker-compose.yaml'

 

 

다운로드 받은 yaml 파일을 열어보면 컨테이너들에 대한 설정 내용들이 포함되어 있습니다.

 

여기서 Airflow 관련하여 여러가지 설정을 변경할 수 있습니다.

예를 들면 AIRFLOW__CORE__LOAD_EXAMPLES: 'true' 를 'false'로 변경하면 예제 파일을 불러오지 않고 Airflow를 실행합니다. 그외 Airflow 웹서버  port 를 변경하거나 postgres port 를 변경할 수 있습니다.

 

 

 

 

3. 환경 초기화

docker-compose 에 맞게 환경을 설정해야 합니다.

아래 내용을 터미널에 입력하여 세팅해줍니다.

mkdir -p ./dags ./logs ./plugins ./config
echo -e "AIRFLOW_UID=$(id -u)" > .env

 

.evn 파일을 열어서 아래와 같은 형식으로 입력되었는지 확인합니다.

 

 

그 다음 아래 명령을 sudo를 사용해 실행해줍니다.

docker compose up airflow-init

 

위와 같이 마지막 줄에 exited with code 0 문구가 나오면 에러 없이 정상적으로 설치된 것입니다.

 

 

 

 

4. Airflow 실행하기

아래 명령어를 sudo 로 실행합니다.

docker compose up

 

 

Airflow 실행에 필요한 과정들이 진행된 후 위와 같이 HTTP 명령 같은 것이 떨어진다면 잘 실행된 것입니다.

Airflow가 기본적으로 헬스 체크를 계속 하기 때문에 프롬프트가 안떨어지고 잘 살아 있으면 정상입니다.

 

이제 서비스가 잘 올라왔는지 확인하기 위해 두 번째 터미널을 열어봅니다.

두 번째 터미널에서 아래 명령을 실행하고 Airflow 실행 상태를 확인합니다.

 

Airflow 서비스를 띄우는데 총 6개의 컨테이너가 올라갑니다.

Airflow 이미지를 통해 생성된 triggerer, worker, scheduler, webserver 컨테이너와

Postgre라고 하는 DB 이미지를 통해 생성된 postgres

레디스라고 하는 Q 서비스 이미지를 통해 생성된 redis 컨테이너가 실행중입니다.

 

 

이제 웹브라우저에서 아래와 같이 localhost:8080 으로 접속해보면 Airflow 서비스에 접속할 수 있습니다.

(ID, Password 모두 airflow)