두개이상의 컨테이너를 띄우기 위한 기술.
앱의 요구를 처음 받아주는 것을 백엔드 또는 load balancer라고 함. 뒤에 있는 누군가에게 선택해서 전달하기 때문에 dispatcher라고도 부르고 reverse proxy, service gateway라고도 함.
정보를 지금 만들어서 보여줘야하는경우 intelligence service에서 작업을 수행하고 결과를 보내준다.
http서버, static한 정보를 저장하는 database, 입력 받아서 로직을 수행하는 intelligent service
이 각각을 컨테이너로 구축한다.
필요할때 필요한만큼 컨테이너 수를 추가하거나 삭제한다 = scaling.
두 개 이상의 컨테이너를 만드는 tool이 docker compose다.
A tool for defining and running multi-container docker applications
docker-compose.yml = docker compose configuration file
docker compose up
docker compose down (시스템 죽인다)
docker compose up —scale (특정 컨테이너가 용량 부족해서 더 키워야 하는 경우)
docker compose는 별도로 설치해야하는 프로그램이었는데 지금은 docker desktop에 포함된다.
nginx웹서버와 redis 데이터베이스를 한꺼번에 띄운다. web서비스 하나와 database서비스 하나.
depends_on: db는 db가 구동되어야 구동할 수 있는 선후관계가 있는것.
이미지를 먼저 구동했다는거니 서버가 구동이 되어 ready상태라는것과는 다르게 client가 나중에 구동됐는데 먼저 실행되어서 에러가 나는 경우도 존재할 수 있다. 이미지 띄우는 순서일 뿐이다.