본문 바로가기

개발중/Docker

docker-compose 에 대해서 알아보기.

728x90
반응형

docker-compose

docker-compose는 Docker에서 여러 컨테이너를 정의하고 관리하기 위한 도구이다. 복잡한 애플리케이션은 여러 서비스(예: 웹 서버, 데이터베이스, 캐시 등)로 구성되는데, docker-compose를 사용하면 이러한 서비스들을 하나의 설정 파일로 정의하고 한꺼번에 실행할 수 있다.

 

주요 기능 및 특징

  • YAML 파일을 통한 설정
    • docker-compose.yml 파일에 서비스, 네트워크, 볼륨 등을 정의하여 각 컨테이너의 설정을 관리한다.
  • 멀티 컨테이너 애플리케이션 관리
    • 단일 명령어로 여러 컨테이너를 빌드하고 실행할 수 있다.
  • 환경 간 일관성 유지
    • 개발, 테스트, 프로덕션 환경에서 동일한 설정을 사용하여 일관성을 보장한다.
  • 의존성 관리
    • 서비스 간의 의존성을 정의하여 실행 순서를 제어할 수 있다.

 

사용 방법

설치하기

Docker Compose는 Docker Desktop에 기본 포함되어 있습니다.

리눅스 등의 환경에서는 별도로 설치해야 할 수 있습니다.

 

docker-compose.yml 파일 작성하기

프로젝트 루트 디렉토리에 docker-compose.yml 파일을 생성합니다.

이 예시는 웹 애플리케이션과 MySQL 데이터베이스를 설정하고, 두 서비스 간의 의존성을 정의합니다.
version: '3'
services:
  web:
    build: .
    ports:
      - "8080:8080"
    depends_on:
      - db
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: example

 

서비스 실행하기

 

빌드 및 실행

-d 옵션을 추가하면 백그라운드에서 실행됩니다.
docker-compose up

 

 

서비스 중지 및 제거

docker-compose down

 

유용한 명령어

 

실행 중인 컨테이너 확인

docker-compose ps

 

 

로그 확인

docker-compose logs

 

 

특정 서비스 재시작

docker-compose restart <서비스명>

 

 

docker-compose의 장점

  • 복잡한 애플리케이션 관리 용이성
    • 여러 서비스를 개별적으로 관리하는 번거로움을 줄여준다.
  • 개발 환경 표준화
    • 팀 내 개발자들이 동일한 환경에서 작업할 수 있도록 도와준다.
  • 빠른 배포 및 스케일링
    • 설정 파일만으로 쉽게 서비스 인스턴스를 늘리거나 줄일 수 있다.
  • 환경 변수 관리
    • .env 파일을 통해 민감한 정보를 관리하고 설정을 분리할 수 있다.

 

728x90
반응형