-
docker-compose 사용이유

- 복수 개의 컨테이너를 한꺼번에 실행, 정지시키기 위한 툴(docker 설치시 docker-compose도 같이 설치)
- 일반적으로 로컬환경에서 서비스 일괄 기동시 사용
- docker 실행을 간접적으로 docker-compose를 통해 함으로서, 환경변수, 옵션등을 script화
- docker간의 통신을 위한 네트워크 구성을 위해 사용
-
docker-compose 주요 명령어
- docker-compose build
- docker-compose 내에 정의된 service들에 대한 이미지 빌드
- docker-compose up -d
- 컨테이너 생성 및 실행 명령어
- 즉, docker build와 docker run의 과정이 docker-compose up 명령어 하나로 수행
- docker-compose.yml 생성 후 해당 파일 위치에서 명령어 수행
- docker-compose down
- docker-compose stop
-
주요 키워드와 속성
- version
- 사용할 Docker Compose 파일의 버전을 지정.
- 버전에 따라 사용할 수 있는 속성이 달라지므로 적절한 버전 지정
- services
- 애플리케이션을 구성하는 서비스(컨테이너)들을 정의
- 각 서비스는 컨테이너의 설정을 포함
- image
- build
- Dockerfile의 위치를 지정하여 이미지를 빌드하는 데 사용
- ports
- environment
- depends_on
- 컨테이너의 의존성을 정의하여, 서비스가 시작되는 순서를 제어
- volumes
- 데이터를 저장하기 위한 볼륨을 정의
- 컨테이너가 삭제되어도 데이터가 유지
- database, log, 정적컨텐츠를 컨테이너에서 관리할경우 volume을 활용하여 호스트 파일시스템에 저장
-
docker-compose 실습
- java실행 기본 파일 2개 실행 실습
- demo 프로젝트 컨테이너와 db컨테이너 동시에 실행
- db설정시 docker-compose의 service명을 db의 host명으로 사용
- 선후 관계 또는 적절한 retry 설정을 통해 spring이 db보다 추후에 실행되도록 설정
- order_system backend, db, frontend통합 실습