[Airflow/Docker] Docker-compose.yaml 파일 해석

2024. 7. 26. 16:06·Minding's Programming/Airflow
728x90
반응형

Docker Compose?

 

Docker Compose는 1개 이상의 도커 컨테이너를 생성할 때 사용하는 스크립트 하나를 뜻하며, 컨테이너들의 설정을 관리(컨테이너 실행 순서, 컨테이너 네트워크 등)할 수 있도록 해주는 Docker의 기능 중 하나다.

 

스크립트는 docker-compose.yaml 이라는 이름의 파일에 컨테이너들의 설정 내용을 입력하면 되고, Docker Compose 서비스를 시작하기 위해서는 yaml 파일이 있는 디렉토리에서 아래 명령어를 입력하면 실행된다. (Docker 서비스가 설치되어 있다는 가정 하에)

sudo docker compose up

 

 

docker-compose.yaml 파일 해석

 

yaml 파일은 json이나 xml과 같이 key, value로 구성되며 계층적인 구조를 가졌다. 파이썬과 같이 들여쓰기 문법을 사용한다는 공통점도 있다.

 

1 Level 내용

  • version: 파일의 버전 정보
  • x-airflow-common: Extetion Fields (각 서비스에 공통 적용될 항목들 정의)
    • 공통 지정할 항목을 &을 붙여서 지정한다.

depends_on : 컨테이너의 실행 순서를 뜻함

  • services: 컨테이너로 실행할 서비스 정의

하단 redis의 경우 port 대신 expose 키가 있다. port 설정과 비슷하면서도 살짝 다르다. port의 경우에는 외부와 연결하는 port 번호를 말하는 것이지만, expose는 내부의 연결을 위한 번호라고 할 수 있다. 내부 컨테이너 간의 포트 번호 개념이라고 알고 있으면 될 것 같다.

웹서버의 경우 depends_on 설정에 따라 postgres, redis 컨테이너 실행 후에 작동된다.

* ports는 다른 컨테이너와 겹치지 않게 설정해야 한다.

  • volumes: 컨테이너에 할당할 volume 정의
# 볼륨에 대한 정보 확인하기 위한 명령어

# 볼륨 리스트 보기
sudo docker volume ls

# 볼륨 상세 보기
sudo docker volume inspect {volume_id}
  • networks: 컨테이너에 연결할 network 정의
# networks 작성 예시

networks
	networks_custom: # 새로 만들 네트워크 이름
    	driver: bridge
        ipam:
        	driver: default
            config: # 네트워크 주소값 설정
            	- subnet: 172.18.0.0/16
                  gateway: 172.18.0.1
# 네트워크에 대한 정보 확인하기

# 네트워크 리스트 보기
sudo docker network ls

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

 

 

 

728x90

'Minding's Programming > Airflow' 카테고리의 다른 글

[Airflow] Connection과 Hook  (0) 2024.07.27
[Airflow/Docker] Postgres 컨테이너 추가해 DB 접속하기  (0) 2024.07.26
[Airflow] Custom Operator 개발해보기 (BaseOperator)  (0) 2024.07.26
[Airflow] SimpleHttpOperator로 서울시 공공데이터 API 이용해보기  (0) 2024.07.25
[Airflow] TriggerDagRun Operator / ExternalTask Sensor (다른 DAG 실행하기)  (0) 2024.07.25
'Minding's Programming/Airflow' 카테고리의 다른 글
  • [Airflow] Connection과 Hook
  • [Airflow/Docker] Postgres 컨테이너 추가해 DB 접속하기
  • [Airflow] Custom Operator 개발해보기 (BaseOperator)
  • [Airflow] SimpleHttpOperator로 서울시 공공데이터 API 이용해보기
Minding
Minding
  • Minding
    Today's Minding
    Minding
  • 전체
    오늘
    어제
    • 울고넘는 딥러닝 (278)
      • Minding's Baseball (57)
        • MLB Statcast (29)
        • 머신러닝으로 홈런왕 예측하기 (3)
        • 야구칼럼 (12)
        • 야구 규칙, 용어 (1)
        • 2022-23 질롱 코리아 (8)
        • 류현진 등판경기 (4)
      • Minding's Programming (185)
        • 프로그래머스 코딩테스트 (21)
        • Knowledge (44)
        • Numpy & Pandas (6)
        • Excel (3)
        • Git (1)
        • Pygame (11)
        • CV (3)
        • Tensorflow tutorial (4)
        • Kaggle and Dacon (4)
        • 에러 코드 (8)
        • FastAPI (8)
        • Airflow (29)
        • Crawling (6)
        • Django (14)
        • AWS (18)
        • Spark (5)
      • Minding's Reading (30)
        • 머신러닝 딥러닝에 필요한 기초 수학 with 파이.. (2)
        • 칼만필터는 어렵지 않아 (11)
        • 밑바닥부터 시작하는 딥러닝 (6)
        • 메이저리그 야구 통계학 2e (8)
        • 논문읽기 (2)
        • 빅데이터를 지탱하는 기술 (1)
      • Minding's Life (5)
        • 주식 (4)
        • 각종 소식 (1)
  • 블로그 메뉴

    • 홈
    • Baseball
    • Programming
    • Reading
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    에어플로우
    KBO
    질롱코리아
    pygame
    데이터분석
    프로그래머스
    Airflow
    mlb stats api
    django
    Python
    KalmanFilter
    FastAPI
    django python
    파이썬
    게임개발
    야구
    머신러닝
    데이터 엔지니어
    MLB
    칼만필터는어렵지않아파이썬
    칼만필터는어렵지않아
    AWS
    파이썬게임개발
    넘파이
    칼만필터는어렵지않아python
    칼만필터
    파이게임
    딥러닝
    코딩테스트
    메이저리그
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Minding
[Airflow/Docker] Docker-compose.yaml 파일 해석
상단으로

티스토리툴바