참고
- 시작하세요 도커/쿠버네티스 chapter 04 도커 컴포즈
여러 개의 컨테이너가 하나의 애플리케이션으로 동작하는 경우 여러 개의 컨테이너를 하나의 서비스로 정의해 컨테이너 묶음으로 관리하기 위함.
예) 웹 서버 컨테이너, 데이터베이스 컨테이너
도커 컴포즈는 컨테이너를 이용한 서비스의 개발과 CI 를 위해 여러 개의 컨테이너를 하나의 프로젝트로서 다룰 수 있는 작업 환경을 제공한다.
https://docs.docker.com/compose/
docker-compose 설치 및 버전 확인
$ docker-compose -v
docker-compose version 1.29.2, build 5becea4c
도커 컴포즈는 컨테이너의 설정이 정의된 YAML 파일을 읽어 도커 엔진을 통해 컨테이너를 생성함.
도커 컴포즈 사용을 위해 가장 먼저 YAML 파일을 작성해야 함
기본적으로 도커 컴포즈는 현재 디렉터리의 docker-compose.yml 파일을 읽어 로컬의 도커 엔진에게 컨테이너 생성을 요청함.
도커 컴포즈는 컨테이너를 프로젝트 및 서비스 단위로 구분함.
컨테이너의 이름 형식은 아래와 같음
[프로젝트 이름]_[서비스 이름]_[서비스 내에서 컨테이ㅓ의 번호]
프로젝트
하나의 프로젝트는 여러 개의 서비스로 구성되고, 각 서비스는 여러 개의 컨테이너로 구성됨.
프로젝트 이름은 기본적으로 docker-compose.yml 이 위치한 디렉터리의 이름으로 지정됨
서비스
서비스는 도커 컴포즈로 생성할 컨테이너 옵션을 정의함.
각 서비스는 컨테이너로 구현되며 하나의 프로젝트로서 도커 컴포즈에 의해 관리됨.
서비스의 이름은 docker-compose.yml 의 services 의 하위 항목으로 정의함
https://docs.docker.com/compose/extends/#multiple-compose-files
여러 Compose 파일을 사용하여 다양한 환경이나 다른 워크플로에 맞게 Compose 응용 프로그램을 사용자 지정 가능함