도커 컴포즈 목적

목적

1개 이상 도커 컨테이너 생성 시 스크립트 하나(docker-compose.yaml)로 컨테이너들 설정을 관리


도커 컴포즈 구조

1 Level 항목

항목설명
versionyaml 파일의 버전 정보
x-airflow-common컨테이너에 공통 적용될 항목들 정의
services컨테이너 실행할 서비스 정의
volumes컨테이너에 할당할 volume 정의
networks컨테이너에 연결할 network 정의 (IP 적용 시 작성)

x-airflow-common

공통 지정할 항목을 &붙여서 지정. 컨테이너 생성 시 airflow-common, airflow-common-env, airflow-common-depends-on을 받음.

services

  • 컨테이너에 올릴 서비스 지정 (웹서버, postgres 등)
  • depends_on: 컨테이너 실행 순서 정의. 설정한 컨테이너(redis, postgres)가 먼저 실행된 후 본 컨테이너가 실행됨

postgres 서비스 주요 항목

항목설명
image사용할 postgres 버전
environmentpostgres에서 사용할 OS 환경변수
volumes컨테이너와 연결할 로컬 파일 시스템 경로 (컨테이너 재시작 시 데이터 보존)
ports로컬과 docker 포트 연결 (로컬port:컨테이너port)

volumes

컨테이너에 사용될 볼륨을 미리 정의.

sudo docker volume ls                        # 볼륨 리스트 확인
sudo docker volume inspect {volume_id}       # 볼륨 상세 보기

networks

sudo docker network ls                       # 네트워크 리스트
sudo docker network inspect {network_id}     # 네트워크 상세 보기

참고사이트