• docker-compose 설치
    • 일반적으로 docker 설치시 docker-compose도 함께 설치
  • docker-compose 장점
    • docker간의 통신을 위한 네트워크 구성을 위해 사용
    • 복수 개의 컨테이너를 한꺼번에 실행, 정지시키기 위한 툴
    • compose 네트워크 내부에서만 컨테이너를 접근하게 할수 있어, 보안상 이점
  • docker-compose 주요 명령어
    • docker-compose up -d 실행
      • 컨테이너 생성 및 실행
      • 즉, docker build와 docker run의 과정이 docker-compose up 명령어 하나로 수행
      • 기존 이미지가 있는 경우 재빌드시--build 옵션 추가
    • docker-compose down
      • 컨테이너 stop 및 삭제
    • docker-compose stop
      • 컨테이너 stop
    • docker-compose start
      • 중지된 컨테이너 시작
    • docker-compose build
      • 이미지만 빌드
  • 주요 키워드와 속성
    • version
      • 사용할 Docker Compose 파일의 버전을 지정.
    • services
      • 애플리케이션을 구성하는 서비스(컨테이너)들을 정의
      • 각 서비스는 컨테이너의 설정을 포함
    • image
      • 컨테이너의 베이스 이미지를 지정
    • build
      • Dockerfile의 위치를 지정하여 이미지를 빌드하는 데 사용
    • ports
      • 호스트와 컨테이너 간의 포트 매핑을 정의
    • environment
      • 컨테이너에서 사용할 환경 변수를 설정
    • depends_on
      • 컨테이너의 의존성을 정의하여, 서비스가 시작되는 순서를 제어
    • volumes
      • 데이터를 저장하기 위한 볼륨을 정의
      • 컨테이너가 삭제되어도 데이터가 유지
      • database, log, 정적컨텐츠를 컨테이너에서 관리할경우 volume을 활용하여 호스트 파일시스템에 저장
  • docker-compose 실습
    • java실행 기본 파일 2개 실행 실습
      • 프로그램 2개 동시에 실행 확인
    • spring컨테이너, db컨테이너,redis컨테이너 등 동시에 실행
      • db설정시 docker-compose의 service명을 db의 host명으로 사용
      • 선후 관계 또는 적절한 retry 설정을 통해 spring이 db보다 추후에 실행되도록 설정