[95, 96] Docker Compose 파일 만들기

    728x90
    반응형

    Docker Compose 파일 만들기

    Docker Compose 파일 작성 가이드

     

    기본 구조

    Docker Compose 파일은 YAML 형식으로 작성되며, 다중 컨테이너 애플리케이션의 구성을 정의합니다.

    version: "3.8"   # Docker Compose 사양 버전
    
    services:        # 컨테이너 정의 시작
      mongodb:       # 첫 번째 서비스(컨테이너) 이름
        # 구성...
      
      backend:       # 두 번째 서비스 이름
        # 구성...
      
      frontend:      # 세 번째 서비스 이름
        # 구성...
    
    volumes:         # 명명된 볼륨 정의
      data:          # 볼륨 이름

     

    서비스 구성 요소

    이미지 지정

    mongodb:
      image: 'mongo'  # Docker Hub의 이미지 사용

     

    볼륨 설정

    volumes:
      - data:/data/db         # 명명된 볼륨
      - ./app:/app            # 바인드 마운트
      - /app/node_modules     # 익명 볼륨

     

    환경변수 설정

    # 방법 1: 직접 정의
    environment:
      MONGO_INITDB_ROOT_USERNAME: max
      MONGO_INITDB_ROOT_PASSWORD: secret
    
    # 방법 2: 대체 구문
    environment:
      - MONGO_INITDB_ROOT_USERNAME=max
      - MONGO_INITDB_ROOT_PASSWORD=secret
    
    # 방법 3: 환경 변수 파일 사용
    env_file:
      - ./env/mongo.env

     

    네트워크 설정

    # 일반적으로 필요 없음 - Docker Compose가 자동 생성
    # 필요시 명시적 정의:
    networks:
      - goals-net

     

    명명된 볼륨 정의

    volumes:
      data:    # 볼륨 이름 정의
      logs:    # 다른 볼륨

     

     

    주요 특징

    1. 자동화된 기능
      • --rm는 기본 적용됨 (컨테이너 중지시 자동삭제)
      • 서비스 간 네트워크 자동 생성
      • 기본 attached 모드, 필요하면 -d 플래그 추가
    2. 들여쓰기 중요성
      • 두 칸 들여쓰기로 계층 구조 표현
      • 같은 수준 요소는 동일한 들여쓰기 유지
    3. 네트워크 통합
      • 같은 Compose 파일의 서비스들은 자동으로 같은 네트워크에 연결
      • 서비스 이름으로 다른 서비스 참조 가능

    이러한 구성으로 복잡한 다중 컨테이너 환경을 단일 파일로 관리할 수 있습니다.

     

     

     

     

    참고

    https://www.udemy.com/course/docker-kubernetes-2022

    728x90
    반응형

    댓글