[Docker] 04. docker-compose 사용법

[Docker] 04. docker-compose 사용법

Dockerfile로 이미지를 만들고 컨테이너를 실행해봤다. 하지만 실제 프로젝트에서는 DB, 백엔드, 캐시 서버 등 여러 컨테이너를 동시에 실행해야 한다.

이럴 때 사용하는 것이 docker-compose이다.


1. docker-compose란?

여러 개의 컨테이너를 하나의 설정 파일로 관리하고 한 번에 실행할 수 있게 해주는 도구다.

즉, 컨테이너 여러 개를 묶어서 실행하는 기능이라고 보면 된다.


2. 기본 구조


version: '3'

services:
  db:
    image: mysql:8
    environment:
      MYSQL_ROOT_PASSWORD: 1234
    ports:
      - "3306:3306"

  backend:
    build: .
    ports:
      - "8080:8080"
    depends_on:
      - db

3. 주요 설정 설명

① services

실행할 컨테이너 목록을 정의한다.

② image

Docker Hub에서 가져올 이미지 지정.

③ build

현재 디렉토리의 Dockerfile을 사용하여 빌드.

④ ports

포트 연결 설정.

⑤ depends_on

다른 서비스가 먼저 실행되어야 함을 명시.


4. 실행 명령어

docker-compose up -d

-d 옵션은 백그라운드 실행.

중지하려면:

docker-compose down

5. 왜 compose를 사용할까?

  • 여러 컨테이너를 한 번에 실행 가능
  • 설정 파일로 관리 가능
  • 배포 시 동일한 환경 구성 가능

실제 프로젝트에서는 거의 필수라고 느꼈다.


정리

docker-compose를 사용하면 DB + Backend + Redis 같은 구조를 한 번에 실행할 수 있다.

다음 글에서는 로컬에서 서버 배포까지의 흐름을 정리해보려고 한다.