[Docker] Docker Compose

Published on
2 mins read

도커 컴포즈 소개

1. 도커 컴포즈 (Docker Compose)

  • 단일 서버에서 여러 컨테이너를 프로젝트 단위로 묶어서 관리 docker-compose.yml YAML 파일을 통해 명시적 관리

  • 프로젝트 단위로 도커 네트워크와 볼륨관리

  • 프로젝트 내 서비스 간 의존성 정의 가능

  • 프로젝트 내 서비스 디스커버리 자동화

  • 손 쉬운 컨테이너 수평 확장

컴포스 사용 목적

1. 특정 프로젝트의 로컬 개발 환경 구성 목적으로 사용
- 프로젝트의 의존성(Redis , MySQL , Kafka 등)을 쉽게 띄울 수 있다.

2. 자동화된 테스트 환경 구성
- CI/CD 파이프라인 중 쉽게 격리된 테스트 환경을 구성하여 테스트 수행 가능


3. 단일 호스트 내 컨테이너를 선언적 관리
- 단일 서버에서 컨테이너를 관리할 때 YAML 파일을 통해 선언적으로 관리

2. 프로젝트 / 서비스 / 컨테이너

1) 프로젝트 (Project)

  • 도커 컴포즈에서 다루는 워크스페이스 단위 ,
  • 함께 관리하는 서비스 컨테이너의 묶음.
  • 프로젝트 단위로 기본 도커 네트워크가 생성 됨.

2) 서비스(Service)

  • 도커 컴포즈에서 컨테이너를 관리하기 위한 단위,
  • scale을 통해 서비스 컨테이너의 수 확장 가능.

3) 컨테이너(Container)

  • 서비스를 통해 컨테이너 관리

3. Docker_compose.yml

  • version, services , networks , - - - - volumes 총 4개의 최상위 옵션

4. 도커스왐(Docker Swam)

  • 여러 서버를 기반으로 스왐 클러스터를 형성하여 컨테이너를 관리하는 컨테이너 오케스트레이션 시스템 쿠버네테스와 동일목적으로 만들어졌지만 인기를 끌지 못함.