Docker - Docker Compose
개요
Compose : 구성하다
Docker Compose
는 다중 컨테이너
애플리케이션을 정의하고 공유할 수 있도록 개발된 도구입니다. compose라는 단어의 뜻에서 알 수 있듯 애플리케이션을 구성하는 도구
로 생각하면 됩니다.
docker-compose.yml
파일을 통해 configure을 설정하고, 단일 명령어로 서비스를 실행 및 종료할 수 있습니다.
Compose를 사용하면 file
에서 애플리케이션의 스택
을 정의하고, repository의 root
에 파일을 저장하여 공유할 수 있습니다. 또한 production, staging, development, testing, CI 환경에서 모두 사용이 가능합니다.
Compose 파일 생성
프로젝트의
root
디렉토리에docker-compose.yml
파일을 생성합니다.(version) Schema version을 정의합니다.
- 최신 버전을 사용하는 것이 권장됩니다.
- 호환성 체크
(services) 애플리케이션을 구성하는 서비스, 컨테이너 목록을 설정합니다.
1 | version: "3.9" # optional since v1.27.0 |
속성
- version : 스키마 버전
- services : 하위에 애플리케이션을 구성하는 서비스 설정
- app, mysql 등 : 어플리케이션, 서비스 정의 (네트워크 별칭과 동일)
- image : docker image
- command : 명령어 (순서가 고정된 것은 아니지만 image와 가까운 곳에 기입한다.)
- ports : 포트
- working_dir : 작업 디렉토리
- volumes : 볼륨 매핑
docker run
으로 실행 시 명명된 볼륨이 자동 생성되지만, compose는 개별적으로 정의해주어야 한다.
- environment : 환경 변수
- MYSQL_HOST: mysql 과 같이 key-value쌍으로 기입한다.
사용 방법
이식성과 재사용성을 높일 수 있도록 Dockerfile로 환경설정을 한다..
독립된 환경에서 돌아갈 수 있도록 앱을 구성하는 서비스를
docker-compose.yml
에 정의한다.docker compose up
이나docker-compose up
을 실행하여 모든 app을 실행시킨다.
참고
Docker - Docker Compose
install_url
to use ShareThis. Please set it in _config.yml
.