[Docker] 5. Docker Compose?

2024. 11. 15. 20:26·Docker

Docker Compose?

  • 다수의 컨테이너를 한 번에 정의하고 관리하기 위한 툴
  • 하나의 애플리케이션이 여러 개의 서비스로 구성될 때 환경 설정 파일로 한 번에 실행 가능
  • YAML 파일을 통해 하나의 명령어로 모든 서비스 관리 지원

Docker Compose 주요 기능

  • 다중 컨테이너 관리 : 여러 컨테이너를 하나의 설정 파일에서 정의하고 함께 실행 및 종료 가능
  • 서비스 종속성 관리 : 컨테이너 간의 의존 관계를 설정하고 자동으로 시작 순서 지정
  • 알관된 환경 제공 : 개발, 테스트, 배포 환경에서 동일한 구성 사용
  • 명령어 단순화 : 단일 명령어로 모든 서비스의 빌드, 시작, 중단, 로그 조회 등 관리

Docker Compose 장점

  • 간편한 멀티 컨테이너 설정
    • YAML 파일 하나로 모든 설정 관리
    • 서비스 간 연결과 의존성을 쉽게 정의 가능
  • 일관성 보장
    • 동일한 환경에서 애플리케이션을 실행하여 환경 의존성 문제 감소
  • 빠른 개발 및 테스트
    • 여러 서비스가 포함된 환경을 빠르게 설정하고 반복적으로 실행 가능
  • 확장성
    • 다양한 컨테이너를 손쉽게 추가하거나 수정 가능
    • 네트워크 설정, 볼륨 공유 등 복잡한 설정을 간단히 구현
  • 효율적인 자원 관리
    • 필요에 따라 컨테이너를 시작 및 중지하여 자원 절약 가능
  • 쉬운 배포
    • 동일한 구성 파일을 사용해 로컬과 프로덕션 환경 모두에서 쉽게 배포 가능

Docker Compose 명령어

기본 명령어

  • [docker compose up]
    • docker-compose.yml 파일에 정의된 모든 서비스 시작
    • build, create, start 총 3개의 명령어를 한번에 실행하는 명령어
    • 옵션
      • -d : 백그라운드 모드로 실행
      • --build : 컨테이너 시작 전에 이미지를 강제로 다시 빌드
  • [docker compose down]
    • docker-compose.yml로 실행된 모든 서비스를 중지하고, 네트워크 및 볼륨 정리
    • 옵션
      • --volumes : 서비스와 함께 생성된 모든 볼륨 제거

빌드 관련 명령어

  • [docker compose build]
    • docker-compose.yml 파일에 정의된 이미지 빌드
    • 옵션
      • --no-cache : 캐시를 사용하지 않고 빌드
      • --parallel : 여러 이미지를 병렬로 빌드

서비스 관리

  • [docker compose create]
    • 빌드된 이미지를 기반으로 새로운 컨테이너 생성
  • [docker compose start]
    • 중지된 컨테이너 시작
  • [docker compose stop]
    • 실행 중인 컨테이너 중지
  • [docker compose restart]
    • 실행 중인 컨테이너를 중지한 후 다시 시작

상태 확인

  • [docker compose ps]
    • 실행 중인 컨테이너 상태 확인
    • 옵션
      • --services : 실행 중인 서비스 이름만 출력
  • [docker compose logs]
    • 모든 서비스의 로그 출력
    • 옵션
      • -f : 실시간 로그 출력 (follow mode)
      • --tail=N : 마지막 N개의 로그만 출력

기타 명령어

  • [docker compose exec]
    • 실행 중인 컨테이너 내부에서 명령어 실행
    • 옵션
      • -i : 표준 입력을 활성화하여 컨테이너와 상호작용 가능
      • -t : 가상 터미널을 활성화
  • [docker compose config]
    • docker-compose.yml 파일의 유효성을 검사하고, 결과 출력

Docker-Compose / Docker Compose

특징 docker-compose docker compose
동작 방식 독립 실행형 도구 Docker CLI의 플러그인
설치 필요 여부 별도 설치 필요 Docker와 함께 제공
명령어 형식 docker-compose up docker compose up
성능 Python 기반, 속도 느림 Go 기반, 성능 최적화
배포 주기 별도 배포 Docker CLI와 동기화

 

저작자표시 (새창열림)

'Docker' 카테고리의 다른 글

[Docker] 6. docker-compose.yml?  (2) 2024.11.15
[Docker] 4. Volume? Mount?  (0) 2024.11.14
[Docker] 3. Docker Hub?  (0) 2024.11.13
[Docker] 2. Docker 기본 명령어  (1) 2024.11.13
[Docker] 1. Docker?  (0) 2024.11.13
'Docker' 카테고리의 다른 글
  • [Docker] 6. docker-compose.yml?
  • [Docker] 4. Volume? Mount?
  • [Docker] 3. Docker Hub?
  • [Docker] 2. Docker 기본 명령어
김줘
김줘
김줘와 같이 데이터, 컴퓨터, IT 공부
  • 김줘
    초보개발자 김줘의 코딩일기
    김줘
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 데이터 엔지니어링 데브코스
      • 데이터
        • Airflow
        • Spark
        • Kafka
        • dbt
      • TroubleShooting
      • Docker
      • AWS
      • 크롤링, 스크래핑, 시각화
        • Selenium
        • 시각화
      • 코딩테스트
        • 프로그래머스
        • 입출력과 사칙연산
        • 정렬
      • Django
      • 자바 공부
      • 끄적끄적
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    에어플로우
    데이터 엔지니어
    TiL
    파이썬
    오블완
    Python
    프로그래머스
    초보개발자
    부트캠프
    데이터 엔지니어링 데브코스
    Azure
    데브코스
    Java
    aws
    티스토리챌린지
    자바
    cloud
    프로그래밍
    데이터 엔지니어링 데브코스 4기
    Airflow
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
김줘
[Docker] 5. Docker Compose?
상단으로

티스토리툴바