[Airflow] Docker 컨테이너 airflow 실행

nbac406·2023년 5월 24일
0

Docker & Airflow

Docker를 사용하여 Airflow를 실행하는 이유

1. 일관된 환경

  • Docker는 컨테이너화된 환경을 제공하여 개발, 테스트 및 배포를 일관된 방식으로 수행할 수 있음
  • Airflow와 그 종속성을 가진 환경을 Docker이미지로 패키지화하면 각각의 환경에서 동일한 실행 환경을 유지 가능 (개발 및 운영간의 호환성 향상)

2. 확장성

  • 컨테이너를 실행하여 처리량을 증가시킬 수 있으며 작업 부하가 증가할 때 확장성을 제공하고 높은 가용성을 유지 가능

3. 이식성

  • Airflow를 Docker이미지로 패키지화하면 다른 시스템 또는 클라우드 환경으로 쉽게 이동 가능
  • 배포 및 확장을 단순화 가능

4. 버전 및 종속성 관리

  • Airflow를 Docker이미지로 패키지화하여 버전 관리 용이

Docker에서 Airflow 컨테이너 설치

docker run -it -p 8080:8080 -v /home/gen/workspace/dags/:/opt/airflow/dags/ -v /etc/localtime:/etc/localtime:ro --entrypoint=/bin/bash --name airflow --privileged apache/airflow:2.6.1 
  • p 8080:8080 : Host의 8080포트와 컨테이너의 8080포트를 매핑
  • v /home/gen/workspace/dags/:/opt/airflow/dags/ : 호스트의 '/home/gen/workspace/dags/' 디렉토리를 컨테이너의 'opt/airflow/dags/'디렉토리에 마운트
  • -v /etc/locattime:/etc/loacltime:ro'호스트의 로컬 타임존 정보를 컨테이너로 마운트
  • --entrypoint=/bin/bash : 컨테이너가 실행될 때 '/bin/bash'쉘을 병행하여 컨테이너 접속 시 명령어 실행 가능
  • --name airflow : 컨테이너 이름을 airflow로 지정
  • --privileged : 컨테이너가 호스트 시스템의 모든 기능과 리소스에 엑세스 할 수 있도록 허용
  • apache/airflow:2.6.1 : docker허브의 'apache/airflow'이미지를 사용(버전 2.6.1)
# DB 초기화
airflow db init

# airflow user 생성
airflow users create --usename amdin --password admin --firstname Anonymous--lastname Admin --role Admin --email test@test.com

# 웹서버 및 스케줄링 백그라운드 실행
airflow webserver & 
airflow scheduler & 

파이썬 task 작업 파일(.py)을 dags폴더에 복사 후 127.0.0.1:8080으로 접속



0개의 댓글