Docker & K8S

Docker & K8S - Docker Volume Airflow 데모(실습)

터칭 데이터 2023. 12. 20. 13:47

 

데모: 앞서 nginx 두 가지 실행 예 살펴보기

첫 번째는 하나는 볼륨없이 내용이 사라지는 경우를

두 번째는 볼륨을 지정하고 실행하며 내용이 사라지지 않는 경우를

 

이렇게 두 상황을 살펴보았습니다.

 

이 상황들에 대한 데모를 진행해보겠습니다.

 

거기에 더해

 

세번째는 Airflow의 docker-compose.yml에서 volumes 내용만 살펴보기도 했는데요.

데모의 끝 부분에서 airflow의 docker-compose.yml 파일도 잠깐 살펴볼 예정입니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

airflow의 docker-compose.yml 파일

 

 

Docker-Compose.yml

 

실행하려는 프로그램이 다수의 Docker Container로 구성된 경우 그 설정을 쉽게 해줄 수 있는 환경설정 파일이라고 생각하시면 됩니다.

 

 

 

 

 

 

지난 Airflow 시간에 Airflow Image를 다운 받고 설치한 airflow-setup 디렉토리에 docker-compose.yml 파일이 있고

 

# AIRFLOW_PROJ_DIR             - Base path to which all the files will be volumed.

 

그 안에 위와 같이 AIRFLOW_PROJ_DIR이 존재합니다.

 

 

 

 

yaml 파일이 위치한 현재 디렉토리 airflow-setup이 AIRFLOW_PROJ_DIR이라는 환경변수로 세팅되는 것입니다.

 

그리고 이렇게 세팅된 환경변수 AIRFLOW_PROJ_DIR을

 

 

 

 

docker-compose.yaml 파일을 조금 더 살펴보면

x-airflow-common:
(생략..)
  volumes:
      - ${AIRFLOW_PROJ_DIR:-.}/dags:/opt/airflow/dags
      - ${AIRFLOW_PROJ_DIR:-.}/logs:/opt/airflow/logs
      - ${AIRFLOW_PROJ_DIR:-.}/plugins:/opt/airflow/plugins

 

volumes 구간에서 사용합니다.

 

volumes는 x-airflow-common아래에 존재하는데 x-airflow-common은 뒤에 설명 드리겠지만 각 Docker 컨테이너에 공통으로 적용되는 세팅을 하는 곳입니다.

 

 

/d/Dev_KDT/airflow-setup이 AIRFLOW_PROJ_DIR 환경변수의 값이므로

 

/d/Dev_KDT/airflow-setup/dags는 Airflow container의 /opt/airflow/dags

/d/Dev_KDT/airflow-setup/logs는 Airflow container의 /opt/airflow/logs

/d/Dev_KDT/airflow-setup/plugins는 Airflow container의 /opt/airflow/plugins와 마운트를 합니다.

 

/d/Dev_KDT/airflow-setup/의 dags, logs, plugins 폴더내의 파일들에 수정 등을 하면 바로 Airflow Container에 반영될 것입니다.