도커는
n-티어 모놀리식 설계부터 현대적인 마이크로서비스 설계까지
이렇듯 분산된 컴포넌트를 실행하는 데 이상적인 환경이다.
각 컴포넌트는 자신만의 경량 컨테이너에서 실행되며
도커가 표준 네트워크 프로토콜을 통해 이들 컨테이너를 엮어낸다.
도커 컴포즈를 사용하면 이렇게 여러 컨테이너에 걸쳐 실행되는 애플리케이션을 정의하고 관리할 수 있다.
웹 프런트엔드, 백엔드 API, 데이터베이스를 갖춘 애플리케이션을 패키징하려면
각 컴포넌트에 하나씩 세 개의 Dockerfile 스크립트가 필요하다.
그렇다면 이들 컨테이너는 누가 실행해야 할까?
도커 컴포즈 파일에 애플리케이션의 구조를 정의하면 된다.
도커 컴포즈 파일은
애플리케이션의 ‘원하는 상태’,