Docker & K8S - Docker Volume Airflow 데모(실습)
데모: 앞서 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에 반영될 것입니다.