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: # 다른 볼륨
주요 특징
- 자동화된 기능
- --rm는 기본 적용됨 (컨테이너 중지시 자동삭제)
- 서비스 간 네트워크 자동 생성
- 기본 attached 모드, 필요하면 -d 플래그 추가
- 들여쓰기 중요성
- 두 칸 들여쓰기로 계층 구조 표현
- 같은 수준 요소는 동일한 들여쓰기 유지
- 네트워크 통합
- 같은 Compose 파일의 서비스들은 자동으로 같은 네트워크에 연결
- 서비스 이름으로 다른 서비스 참조 가능
이러한 구성으로 복잡한 다중 컨테이너 환경을 단일 파일로 관리할 수 있습니다.
참고
728x90
반응형
'강의 > Docker & Kubernetes : 실전 가이드' 카테고리의 다른 글
[104-112] 유틸리티 컨테이너에 대해서 (0) | 2025.03.24 |
---|---|
[98-100] Docker Compose 명령어와 다중 컨테이너 구성 (0) | 2025.03.16 |
[94] Docker Compose : 무엇이며 왜 사용하는가? (0) | 2025.03.13 |
[90] 바인드 마운트로 React 컨테이너에 대한 라이브 소스 코드 업데이트하기 (0) | 2025.03.10 |
[89] NodeJS 컨테이너의 볼륨, 바인딩 마운트 및 폴리싱 (Polishing) (0) | 2025.03.09 |
댓글