compose.yaml 파일 만들기

중급 Docker

Mike Metzger

Data Engineering Consultant

YAML

  • Yet Another Markup Language
    • YAML Ain't Markup Language
  • 텍스트 파일이며, 공백이 중요함(파이썬과 유사)
  • 다양한 개발 구성에 사용됨
  • 규칙이 까다로울 수 있음. 예시처럼 들여쓰기를 맞추세요
services:
  postgres:
    container_name: postgres
    image: postgres:latest
    ports:
      - "5432:5432"
    restart: always
  pgadmin:
    container_name: pgadmin
    image: dpage/pgadmin4:latest
    ports:
      - "5050:80"
    restart: always
중급 Docker

주요 섹션

  • 각 섹션이 다른 구성요소를 다룹니다
  • services: 로드할 컨테이너 목록
  • networks: 네트워킹 정의
  • volumes: 볼륨 마운트 제어
  • configs: 커스텀 이미지 없이 구성 옵션 처리
  • secrets: 비밀번호, 토큰, API 키 등 처리
  • 자세한 내용은 Docker Compose 문서 참고
services:
  ... # Define containers

networks: ... # Define any networking details
volumes: ... # Define storage requirements
configs: ... # Define special config details
secrets: ... # Define passwords / etc
1 https://docs.docker.com/compose/compose-file/
중급 Docker

Services 섹션

  • 애플리케이션에 필요한 모든 리소스를 정의합니다
  • 주로 사용할 컨테이너와 이미지를 지정합니다
  • 옵션은 많지만 개별 컨테이너에만 적용됩니다
  • 필요에 따라 들여쓰기합니다
  • 첫 하위 섹션은 각 구성요소 이름이고, 그 뒤에 설정이 옵니다
중급 Docker

Services 예시

services:

# Resource name postgres:
# Container name, otherwise random container_name: postgres
# Container image to use image: postgres:latest
# Any port mapping required ports: # Network details - "5432:5432"
# Next resource pgadmin: ...
  • 리소스 이름
  • container_name: 지정 컨테이너 이름, 없으면 임의로 생성
  • image: 사용할 컨테이너 이미지
  • ports: 필요한 포트 매핑 목록
  • 이어서 필요한 다음 리소스들
중급 Docker

추가 코멘트

  • config.yaml 문법은 방대합니다
    • 여기서는 compose.yaml 옵션의 극히 일부만 다룹니다
    • 문서를 꼭 확인하세요!
  • 일반적으로 compose.yaml을 처음부터 작성할 필요는 없습니다
1 https://docs.docker.com/compose/compose-file/
중급 Docker

연습해 봅시다!

중급 Docker

Preparing Video For Download...