도커 컴포즈란?

도커컴포즈는 단일 서버에서 여러개의 컨테이너를 하나의 서비스로 정의해 컨테이너의 묶음으로 시스템 구축과 관련된 명령어를 하나의 텍스트 파일(정의 파일)에 기재해, 명령어 한번에 시스템 전체를 실행하고 종료와 폐기까지 한번에 하도록 도와주는 도구이다.

사용하는 이유

여러 개의 컨테이너가 하나의 어플리케이션으로 동작할 때 도커 컴포즈를 사용하지 않는다면, 이를 테스트할 때 각 컨테이너를 하나씩 생성해야합니다. 예를 들면, 웹 어플리케이션을 테스트하려면 웹 서버 컨테이너, 데이터베이스 컨테이너 두개의 컨테이너를 각각 생성해야한다.

도커 컴포즈의 한계

도커 컴포즈는 Dockerfile을 대체할 수 없다. 커스텀 이미지를 만들어 빌드하기 위해서는 도커 컴포즈를 사용한다고 해도 Dockerfile은 필요하다. 도커 컴포즈는 여러 호스트 머신에 흩어져있는 컨테이너들을 제어하는데는 적합하지 않다. 이런 관리를 위해서는 쿠버네티스와 같은 컨테이너 오케스트레이션 툴이 필요하다.

사용방법

image.png

ubuntu환경으로 돌아와서 docker-compose-blue를 생성해서 작성

version: '3.8'                  # Docker Compose 파일의 버전 설정

services:                       # 서비스 정의 시작
  blue:# 서비스 이름: blue
    image: leebyeonghoon/live_server:latest# 사용할 Docker 이미지
    container_name: blue        # 생성할 컨테이너의 이름
    ports:                      # 포트 매핑 설정
      - "8080:8080"             # 호스트의 8080 포트를 컨테이너의 8080 포트와 연결
    environment:                # 환경 변수 설정
      - PROFILES=blue           # 프로필 환경 변수 설정
      - ENV=blue                # 환경 변수 설정