-
Docker) Docker Compose 알아보기Cloud/Docker 2022. 10. 6. 01:25
container orchestration 배경
Docker Compose vs Kubernetes 기존 Docker를 이용한 Application 배포방식은 하나의 container를 생성하는 경우에 큰 문제는없다.
하지만 서로 연관된 여러 container로 서비스를 제공하는 경우, container의 생성순서 나 연관 관계를 처리하기 위해서 container orchestration 도구(Docker Compose, Kubernetes 등)를 필요로 한다.
Docker Compose 란?
- 공통성을 갖는 container application stack을 YAML 코드로 정의한 정의서이며, 정의서를 실행하는 다중 container 실행 도구를 IaC도구라고 한다.
- 공통의 목적을 갖는 application stack을 Docker Compose YAML 코드로 정의해서 한번에 서비스를 올리고 관리할 수 있는 도구다.
- Docker Compose로 실행된 container는 독립된 기능을 가지며, 공통 network로 구성되기 때문에 container간 통신이 쉽다.
- Docker Compose는 공통성이 있는 container들을 포함하여 쉽고 빠른 run-time 환경을 제공한다.
- Docker Compose는 test, development, operation의 모든 환경에서 구성가능한 orchestration 도구 중 하나다.
- 다양한 관리 기능을 가지고 있지 않기 때문에 test와 debelopment 환경구성에 적합하다.
- 실제 운영환경은 많은 관리적 요소가 필요하므로 Docker Swarm이나 Kubernetest와 같은 orchestration 도구를 사용한다.
Docker Compose YAML 파일
YAML 파일 예 - YAML 파일 이름은 docker-compose.yml, docker-compose.yaml, compose.yml, compose.yaml 중 하나로 지정해야 명령이 정상적으로 실행된다.
- 일반적으로 설계상 가장 먼저 실행되어야 하는 application을 먼저 작성하고, 의존성을 갖는 DataBase 및 하위 application을 작성한다.
- YAML 파일 코드 구조
- version
- 가장 상단에 기술한다.
- Docker engine버전과 연관성이 있어 Docker engine에 따른 버전 번호를 기술한다.
- services
- Docker Compose를 통해 실행할 서비스를 정의한다.
- service명 은 container 이름을 의미한다.
- service명 다음에 해당 container를 생성하기 위한 정보를 기술한다.
- build 속성은 Dockerfile을 이용한 image생성시 사용한다.
- depends on은 의존성 서비스를 명시함으로, 제일 먼저 실행시킨다.
- version
'Cloud > Docker' 카테고리의 다른 글
Docker) Docker Hub Registry 실습해보기 (0) 2022.10.06 Docker) Docker Compose 실습해보기 (0) 2022.10.06 Docker) Docker Network 실습해보기 (0) 2022.10.06 Docker) Docker Network 알아보기 (0) 2022.10.05 Docker) Docker Volume Nginx container 실습해보기 (0) 2022.10.04