🔙뒤로가기

도커 컴포즈의 개념 및 필요성

Docker Compose는 여러 Docker 컨테이너를 동시에 관리하고 실행하는 툴이다. Compose를 사용하면 애플리케이션의 서비스를 각기 다른 컨테이너에서 실행하고 이를 관리하는 것이 가능해진다. 각각의 컨테이너는 Dockerfile 또는 이미지에 따라 독립적으로 구성될 수 있으며, 서로 다른 네트워크, 볼륨, 그리고 환경 설정을 가질 수 있다.

Compose는 YAML 파일 형식으로 서비스 설정을 기술하여 사용한다. 이 파일을 사용하면 단일 커맨드로 애플리케이션을 시작, 중지, 빌드하는 등의 작업을 할 수 있다. 이는 여러 개의 복잡한 도커 명령을 단순화시키며, 일관된 환경에서 애플리케이션을 실행하거나 배포하는데 유용다.

도커 컴포즈 YAML 파일 작성

Docker Compose YAML 파일은 서비스, 네트워크, 볼륨 등의 세부 설정을 포함한다. 각 서비스는 도커 컨테이너를 나타내며, 이 서비스들은 도커 이미지 또는 Dockerfile로 정의된다.

간단한 Docker Compose 파일의 예제는 다음과 같다.

version: '3' # 사용할 Docker Compose 버전
services: # 이 애플리케이션에서 사용할 서비스들
  web: # 서비스의 이름
    build: . # Dockerfile이 위치한 디렉토리
    ports: # 호스트와 컨테이너의 포트 매핑
      - "5000:5000"
    volumes: # 호스트와 컨테이너의 볼륨 매핑
      - .:/code
    depends_on: # 다른 서비스와의 의존성
      - redis
  redis: # 또 다른 서비스의 이름
    image: "redis:alpine" # 사용할 도커 이미지

위의 설정은 'web'과 'redis'라는 두 개의 서비스를 정의한다. 'web' 서비스는 현재 디렉토리의 Dockerfile을 빌드하며, 'redis' 서비스는 Docker Hub에서 제공하는 'redis:alpine' 이미지를 사용한다. 이 두 서비스는 독립적으로 실행되지만, 'web' 서비스는 'redis' 서비스가 준비된 후에 실행다.