본문 바로가기
IT/도커

7. docker compose

by 노오-력 2023. 1. 25.

다수의 서비스를 실행하는 복잡한 애플리케이션을 설정하기위해서는

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