Backend 백엔드

[ 26 ] docker compose

박민우_ 2024. 8. 19. 11:28

docker compose

백엔드 서버 컨테이너와 데이터베이스 서버 컨테이너가 있다고 할때, 매번 여러개의 컨테이너를 키고 끄는건 귀찮은 일이다.

docker compose 는  컨테이너들을 모아서 한번에 빌드하고 ,실행하고 , 끄는 역할을 하는 도구이다.

 

명령어가 간단하기 때문에 하나의 컨테이너를 사용하는 경우에도 이를 compose로 감싸서 compose 명령어를 사용하기도 한다.

 

왜 여러 컨테이너를 사용할까?

하나의 컨테이너 안에 백엔드 서버와 데이터베이스 서버를 모두 넣어서 관리할수도 있다. 이 방법은 각각의 컨테이너를 만들어서 docker를 사용하는 것과 비교해서 성능의 차이는 거의 없고, 다만 컨테이너의 복잡성을 높이고 재활용성을 어렵게 할 뿐이다. 따라서 서버들을 각각의 컨테이너로 만들어 놓고 Docker Compose 도구로 관리한다.

Docker Compose 도구 실습하기 

컨테이너들을 관리하는 docker-compose.yaml 파일 생성하기

touch docker-compose.yaml


// 파일명 규칙


Docker Compose YAML 파일의 이름에는 엄격한 규칙이 있지는 않지만, 일반적으로 따르는 관행이 있습니다:

기본 이름:

docker-compose.yml 또는 docker-compose.yaml
이 이름을 사용하면 docker-compose 명령어를 실행할 때 파일을 지정하지 않아도 됩니다.


환경별 파일:

docker-compose.dev.yml (개발 환경)
docker-compose.prod.yml (프로덕션 환경)
docker-compose.test.yml (테스트 환경)


중요한 점:

Docker Compose는 기본적으로 docker-compose.yml을 찾습니다.
다른 이름을 사용할 경우, -f 옵션으로 파일을 지정해야 합니다:

docker-compose -f docker-compose.dev.yml up

여러 파일을 사용할 때는 여러 번 -f 옵션을 사용할 수 있습니다:

docker-compose -f docker-compose.yml -f docker-compose.prod.yml up

docker-compose.yaml 파일 작성 

version : '3.7'

# 컴퓨터들

  # 내데이터베이스컴퓨터:
  #   build:
  #     파일경로:
  #     파일명: Dockerfile.mongo

services :

  my-backend:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - 4000:4000
    
    
    
  my-database:
    build:
      context: .
      dockerfile: Dockerfile.mongo
    ports:
      - 27017:27017

명령어

빌드 명령어 

docker-compose build

컨테이너 실행 명령어

docker-compose up

컨테이너 실행 중지 명령어

docker-compose stop
728x90