[TIL] 개발환경 구축을 위한 Docker와 K8S 실습 (4)

이원진·2023년 6월 15일
0

데브코스

목록 보기
49/54
post-thumbnail

학습 내용


  1. Docker-Compose로 다수의 Container 실행해보기

  2. Airflow Docker docker-compose.yml 리뷰

1. Docker-Compose로 다수의 Container 실행해보기


  • Docker-Compose

    • 소프트웨어가 다수의 Container로 구성된 경우 사용할 수 있는 툴 + 환경 설정 파일

      • docker-compose.yml로 수정

      • 다양한 테스트 수행 가능

      • 다양한 버전 개발 가능(dev, test, prod, …)

    • 개별 Container를 따로따로 관리하는 것보다 훨씬 생산성이 높음

      • 그만큼 학습할 내용이 많아지고 복잡해짐

    • Docker Desktop에 포함되어 있음

    • 명령어

      • docker-compose build

      • docker-compose up: docker-compose.yml에 정의된 모든 Container를 한 번에 생성 및 실행

      • docker-compose pull: docker-compose.yml에 정의된 모든 Image를 한 번에 다운로드

      • docker-compose push: docker-compose.yml에 정의된 모든 Image를 한 번에 업로드

      • docker-compose ps: 동작 중인 Container의 상태 확인

      • docker-compose down: docker-compose.yml에 정의된 모든 Container를 한 번에 정지 및 삭제

      • docker-compose start

      • docker-compose stop

      • docker-compose rm

    • docker-compose.yml

      • services: 프로그램을 구성하는 서비스 지정

        • 각각의 서비스는 별개의 Docker Image, Docker Container로 구성

          • 각자 다른 Dockerfile을 가져야 함

        • 서비스별로 포트 번호, 환경변수, 디스크 볼륨 등 지정

      • volumes: 사용할 docker volume 지정

      • networks: 사용할 network 지정

        • 미지정 시 같은 docker-compose 그룹 내에서는 모두 연결됨

      • healthcheck: Container의 서비스가 정상적으로 작동하는지 확인

      • depends_on: 해당 서비스를 실행하기 위해 먼저 실행되어야 하는 서비스 기술

      • environment: 해당 서비스가 Container 안에서 실행될 때 사용할 환경변수 지정

      • .yml, .yaml 둘 다 존재할 경우 에러 발생하므로 하나만 사용해야 함

      • -f: 다른 이름의 파일 사용

        • docker-compose -f docker-compose_mac.yml up

    services:
        frontend:
            build: ./frontend
            ports:
                - 3000:3000
    
        backend:
            build: ./backend
            ports:
                - 3001:3001
            environment:
                DB_URL: mongodb://database/vidly
    
        database:
            image: mongo:4.0-xenial
            ports:
                - 27017:27017
            volumes:
                - vidly: /data/db
    
    volumes:
        vidly:

2. Airflow Docker docker-compose.yml 리뷰


  • docker-compose.yml

    • version

    • x-airflow-common

      • airflow-common이라고 부르는 별칭을 정의

      • 여러 서비스에서 공유하는 공통 설정 정의

      • 이를 anchor라고 부르며, yml 파일 블록을 계승이라는 형태로 재사용 가능하게 해줌

      • DAG에서 사용할 Python 모듈을 설치할 수 있음

    • services

      • postgres

      • redis

      • airflow-webserver

      • airflow-scheduler

      • airflow-worker

      • airflow-triggerer

      • airflow-init

    • volumes

      • postgres-db-volume

메모


  • .dockerignore: Image 빌드 시 추가하지 말아야 할 파일, 폴더 지정

0개의 댓글