본문 바로가기
DevOps/Docker

7. 도커 컴포즈: 컨테이너 오케스트레이션 도구(특징, 사용시 이점, 튜토리얼, 오류 해결)

by 잉크드 2023. 7. 27.
반응형

도커 컴포즈는 멀티 컨테이너로 이루어진 애플리케이션을 단일 호스트에서 정의하고 실행하기 위한 도구입니다. 도커 컨테이너를 연주자라고 한다면, 도커 컴포즈는 오케스트라의 지휘자라고 할 수 있습니다. 

도커 컴포즈의 특징

  • 다중 컨테이너 도커 애플리케이션 정의 및 실행
  • 스케일링이 용이함
  • 컨테이너 간 의존성 관리의 용이함
  • YAML을 이용하여 구성
  • 로깅과 모니터링 기능 제공

도커 컴포즈 사용시 이점

위의 특징들을 통해서 도커 컴포즈를 사용시 아래와 같은 이점을 얻을 수 있습니다.

  • 서비스 구성의 단순화
    YAML을 이용하여 구성을 관리하기 때문에, 사용자는 보다 쉽게 이해하고, 수정하고, 공유하며, 버전을 관리할 수 있습니다.
  • 일관된 환경
    개발, 테스트, 프로덕션 등 다양한 환경에서 일관된 애플리케이션 실행을 보장할 수 있습니다. 이는 환경에 따른 오류를 줄이는 데 도움이 됩니다.
  • 관리 단순화
    도커 컴포즈는 여러 컨테이너로 구성된 애플리케이션을 한 번에 구동하고 관리할 수 있게 해줍니다. 이는 애플리케이션의 복잡성을 줄이고 효율성을 높여줍니다.

도커 컴포즈 튜토리얼

도커 컴포즈 설치

아래 명령어를 사용해서 도커 엔진과, 도커 컴포즈 플러그인을 설치합니다.

다른 운영체제에 설치하고자 하는 경우, 공식 문서를 참조하시기 바랍니다.

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl start docker

설치 검증

예제 코드 다운로드

제 깃 허브에 예제 코드를 올려두었습니다.

아래 명령어를 사용해서 예제 코드를 다운로드 합니다.

git clone https://github.com/inkedtomato/docker-compose-tutorial

도커 컴포즈 실행

이제 docker-compose.yml 파일이 있는 디렉토리로 이동하여 'docker compose up -d' 명령어를 입력합니다.

docker compose up -d

정상적으로 redis 콘테이너, web 콘테이너가 실행중인 모습
5000번 포트에 접속하여 정상적으로 작동함을 확인

도커 컴포즈 관리

1. 사용량 확인

아래 명령어를 입력하여 컨테이너들의 리소스 사용량을 확인할 수 있습니다.

docker stats

2. 스케일 인, 아웃

아래 명령어를 입력하여 서비스의 컨테이너 개수를 늘리고 줄일 수 있습니다.

docker compose up --scale web=3
# docker compose up --scale 서비스_이름=새_컨테이너_개수

3. 어플리케이션 종료

아래 명령어를 입력하여 도커 컴포즈로 실행 중인 컨테이너를 종료합니다.

docker compose down

권한 오류 발생시 해결 방법

해당 오류는 일반적으로 도커 데몬 소켓에 대한 권한 부족으로 발생합니다.

다음 명령어를 사용하여 현재 사용자를 도커 그룹에 추가합니다.

sudo usermod -aG docker $USER

이후, 그룹 추가를 반영하기 위해서 사용자에 다시 로그인하고, 명령을 실행합니다.

 

이번 글에서는 도커 컴포즈의 특징과 이점에 대해서 설명하고, 명령어를 사용해서 다중 컨테이너로 작성된 어플리케이션을 단일 호스트에서 실행하고 관리하는 과정을 소개해보았습니다. 예제 코드에 대한 설명은 옆길로 세는 내용인 것 같아서 제외했습니다.

댓글