docker-compose란 Docker에서 사용하는 컨테이너 공간을 한 곳에서 관리하기 위한 도구이다. yml파일로 작성하며, docker-compose명령어를 활용하여 여러 개의 컨테이너를 한 번에 관리한다.
장점으로는
1. Multiple isolated environments on a single host
docker 자체가 isolated environment에서 동작하며 docker-compose가 여러 docker를 한 번에 실행시키는 것을 고려해보면, 당연한 장점 아닌 장점이다.
2. Preserve volume data when containers are created
볼륨을 보존한다. 이 말은 즉, 기존 컨테이너에 의해 관리되는 volume이 있을 때 새로운 컨테이너가 기존 컨테이너가 사용한 volume을 그대로 사용함으로써 데이터를 보존한다. (기존 컨테이너가 사용한 volume을 새로운 컨테이너에게 복사한다.
3. Only recreate containers that have changed
docker-compose는 설정값을 캐싱한다. 때문에 docker-compose를 재시작할 때 설정이 변경되지 않았으면 캐싱된 값을 그대로 사용한다.
4. Variables and moving a composition between environments
파일 내부에 변수를 설정하여 다양한 환경에서 적용할 수 있다.
docker-compose.yaml
version : '2.1'
services:
test-app:
container_name: test-app
image: test-app:latest
environment:
volumes:
- ./h2db:/home/test/h2db
ports:
- “8080:8080”
restart: always
- services : 실질적인 컨테이너 집합 요소, 입력 값으로 하나의 컨테이너가 만들어져 유기적으로 동작
- container_name : 컨테이너 이름 지정
- image : Docker hub에 올라가있는 image 리스트에서 사용할 이미지 명과 태그
- environment : 컨테이너 내부에서 사용할 인자
- volumes : local 디렉토리와 컨테이너 경로 매칭
- ports : 외부에서 접속하는 포트를 Docker 내부 포트와 매칭
- restart : 컨테이너 오류와 같이 종료되었을 때 다시 시작할지 여부
작성 후 실행 명령어
# docker-compose up
아래 Docker compose로 Spring boot 올리는 예제와 설명이 잘 나와있다.
https://dico.me/back-end/articles/289/ko
참고
https://slog.website/post/11
도커 컴포즈 다운로드
https://psychoria.tistory.com/651
'Web > Spring Boot' 카테고리의 다른 글
[SpringBoot]Logging과 Log Level (0) | 2021.11.25 |
---|---|
[Spring]@Autowired (0) | 2021.11.24 |
[SpringBoot]banner.txt만들기 (0) | 2021.11.22 |
[Spring Boot]Docker 이미지 빌드 (0) | 2021.10.27 |