다수의 서비스를 실행하는 복잡한 애플리케이션을 설정하기위해서는
docker compose를 사용하는게 좋다.
yaml형식의 구성파일인 docker-compose.yml을 생성하고
$ docker-compose up
명령어를 실행하기만 하면
docker-compose.yml에 구성한 애플리케이션 스택 전체를 불러올 수 있다.
대신 하나의 docker host에 실행되는 컨테이너에만 사용할 수 있다.
예들들어
파이썬으로 개발한 voting-app 으로 투표를 하면
redis 인메모리 db에 저장되고
.NET으로 개발한 worker 서버가 영구 스토리지에 업데이트하는데
이 때 영구 스토리지는 PostgreSQL이다.
그리고 투표 결과는 Node.js로 개발했다.
$ docker run -d --name=redis redis
$ docker run -d --name=db postgres
$ docker run -d --name=vote -p 5000:80 -- link redis:redis voting-app
$ docker run -d --name=result -p 5001:80 --link db:db result-app
$ docker run -d --name=worker --link redis:redis --link db:db worker
하나씩 따로따로 실행해 주면 위와 같이
전부 docker run 명령어로 하나하나 실행시켜야하고 link 때문에 순서도 지켜야한다.
# docker-compose.yaml
version: "3"
services:
redis:
image: redis
db:
image: postgres:9.4
vote:
image: voting-app
ports:
- 5000:80
worker:
image: worker-app
result:
image: result-app
ports:
- 5001:80
위와 같이 docker-compose.yaml 파일을 작성해서
docker-compose up 명령어만 실행시키면
link를 자동으로 연결시켜주기 때문에, port설정만 해 주면된다.
반대로 docker-compose down 명령어를 실행시키면
docker-compose up으로 실행시킨 어플리케이션을 모두 종료시킨다.
'IT > 도커' 카테고리의 다른 글
9. 도커 엔진, cgroups (0) | 2023.01.25 |
---|---|
8. docker registry (0) | 2023.01.25 |
6. CMD vs ENTRYPOINT (0) | 2023.01.22 |
5. 도커 환경변수 (0) | 2023.01.22 |
4. 도커 이미지 생성, 푸쉬 (0) | 2023.01.21 |