본문 바로가기

사용기/리뷰/Docker

Docker Compose 란 무엇인가

Docker를 세팅하기 위해서 공부를 하다가 너무 어려워서

 

공식 홈페이지의 원문을 일부 읽으며 일부 번역하며 기록해둡니다.

(원문 : docs.docker.com/compose/ )

 

 

 

Docker Compose는 다수의 도커 컨테이너를 실행을 정의하는 툴입니다.

 

Docker Compose는 YAML 파일을 사용하여 Application을 세팅하는데

복잡한 다수의 도커 어플리케이션을 간단한 명령어를 통해 서비스 할 수 있게 해주는 툴입니다.

 

Docker Compose를 사용하는데는 하기와 같이 크게 세가지 단계로 이루어 집니다.

 

1. Dockerfile 을 이용하여 실행하는 어플리케이션의 환경변수를 정의합니다.

2. docker-compose.yml 파일을 이용하여 서비스하고자하는 어플리케이션을 구성합니다.

3. docker-compose up 명령어를 통해 전체 어플리케이션을 실행합니다.

 

하기는 docker-compose.yml 파일의 예제입니다.

 

version: "3.9"  # optional since v1.27.0
services:
  web:
    build: .
    ports:
      - "5000:5000"
    volumes:
      - .:/code
      - logvolume01:/var/log
    links:
      - redis
  redis:
    image: redis
volumes:
  logvolume01: {}

Docker Compose 는 어플리케이션의 모든 lifecycle을 관리하게 됩니다.

  • 서비스의 시작과 종료, 그리고 재구성
  • 실행되는 서비스의 상태 확인
  • 실행되는 서비스의 로그 출력
  • 독립된 일회성의 서비스 실행

즉 Docker Service는 도커 서비스 실행의 구성을 한번에 실행하게 해주는

구성을 정의하는 툴이라고 볼 수 있습니다.

 

 

또한 Docker Service 를 통해 하나의 서버에서 다수의 독립된 환경을 구성할 수 있습니다.

 

  • 개발서버에서, 다양한 환경변수를 고려하여 여러 카피의 프로젝트를 진행할 수 있습니다.
  • CI 서버에서 각각의 빌드를 서로간의 간섭없이 관리할 수 있습니다.
  • 호스트를 공유하는 경우 같은 이름을 가진 프로젝트끼리의 간섭을 방지할 수 있습니다.

Docker Service를 통해 실행한 어플리케이션의 volume data 는 새로운 Docker Service

실행시 유지되게 되며, 계속적으로 사용할 수 있습니다.