[Docker] Docker Compose

BoongDev·2023년 4월 12일
0

Docker

목록 보기
3/3

Docker Compose는 Dockerized 애플리케이션을 정의하고 실행하기 위한 도구입니다.

여러개의 컨테이너를 정의하고 실행하기 위한 YAML 파일로 작성됩니다.

Dockerized란 Docker 컨테이너 내에서 실행되는 애플리케이션 또는 서비스를 의미합니다. 즉, Docker 컨테이너를 사용하여 애플리케이션을 패키징하고, 배포하며 실행하는 것을 의미

Docker Compose 설치

Docker docs 에서 가장 권장하는 방법은 Docker Desktop 을 설치하는 것이다

Docker Desktop 이 설치되어진 경우 말고 Docker Engine 및 Docker CLI 가 이미 설치되어 있는 경우는 다음과 같다

저장소를 사용하여 설치 하는 경우

  1. 저장소를 설정하여야 한다. 저장소 설정의 경우 다음 링크를 통해 확인

    우분투 | 센트OS | 데비안 | 페도라 | RHEL | SLES .

  2. 패키지 인덱스를 업데이트 및 최신 버전의 Docker Compose 설치

    # Ubuntu 기준 설명
    $ sudo apt-get update
    $ sudo apt-get install docker-compose-plugin
  3. 버전을 확인 Docker Compose 설치 확인

    $ docker compose version

플러그인 수동 설치

  1. Compose CLI 플러그인을 다운로드하고 설치

    DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
    mkdir -p $DOCKER_CONFIG/cli-plugins
    curl -SL https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
  2. 바이너리에 실행 권한 적용

    chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
    # 또는 모든 사용자를 위한 Compose 설치
    sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
  3. 설치 확인

    $ docker compose version

Docker Compose

Docker Compose 의 최신 버전은 2023년 6월 말부터 Compose V1은 더 이상 지원되지 않으며 모든 Docker Desktop 버전에서 제거됨으로 Docker Compose V2 라고 봐도 무방하다.

Docker Compose V2 의 경우 명령어에서 변화가 있어 알아 두어야 한다.

docker-compose up
# v1 에서의 사용 명령어
docker compose up
# v2 에서의 사용 명령어 

Docker Compose YAML 파일 작성하기

Docker Compose YAML 파일을 작성해서 Docker Compose 를 사용할 준비를 합니다. 이 파일은 여러 개의 컨테이너를 정의하고 각 컨테이너가 실행되는 방식을 설정합니다.

# Docker Compose YAML 파일의 예시
version: "3.9"

services:
  web:
    build: .
    ports:
      - "5000:5000"
    volumes:
      - .:/code
    depends_on:
      - redis
  redis:
    image: "redis:alpine"
  • version : Compose 파일의 버전
  • services : 컨테이너들의 설정을 정의
  • 위 예시에서는 webredis라는 두 개의 컨테이너를 정의
    • 각각의 컨테이너 이미지 이름
    • Dockerfile 위치
    • 포트 포워딩,
    • 볼륨 마운트
    • 다른 컨테이너에 대한 의존성이 정의

사용 명령어

  • 실행 Docker Compose YAML 파일을 작성한 후 해당 디렉토리에서 다음 명령어 사용
    $ docker compose up
    # Docker Compose YAML 파일에서 정의된 모든 컨테이너를 빌드하고 실행한다
    # 기본적으로 docker-compose.yml 파일을 찾는다
    # -d detech 옵션을 사용하여 백그라운드 실행 가능
    
    # 특정 다른 이름의 파일을 사용해야 할 경우
    # -f 또는 --file 옵션을 사용 docker compose 가 사용할 파일 이름 지정
    $ docker compose -f docker-compose-dev.yml up
    # 여러번 사용하여 파일 추가 가능
    $ docker compose -f docker-compose.yml -f docker-compose.dev.yml up
  • 중지 Docker Compose를 중지하려면 다음과 같이 docker-compose down 명령어를 사용합니다.
    $ docker compose down
    # docker compose 실행 중인 모든 컨테이너를 중지하고, 컨테이너, 네트워크 및 볼륨과 같은 모든 Docker 자원을 삭제
  • Docker Compose 로 관리할 수 있는 컨테이너 확인
    $ docker compose ps
    # yml 없으면 나오는 경고문
    # no configuration file provided: not found
  • ※ 주의
    • docker compose 모든 명령어는 docker compose 설정 파일이 있는 디렉토리에서 사용
profile
욕심 많은 주니어 개발자입니다.

1개의 댓글

comment-user-thumbnail
2023년 4월 19일

Thank you for good information. In the next post, tell us about what you felt while studying. If you have something you want to say to people who want to become devops engineers, let's talk about it together.

답글 달기