[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
반응형

댓글