콘텐츠로 이동
공식 웹사이트로 돌아가기

컨테이너 오케스트레이션(Compose)

애플리케이션이 여러 서비스(예: 업무 서비스 + 데이터베이스 + 메시지 큐)로 구성되면 오케스트레이션 파일에서 정의, 의존성과 실행 방식을 한곳에 선언할 수 있습니다. 오케스트레이션 실행은 장치 에이전트가 통합 수행합니다. Release에 구성하면 장치가 자동 배포하므로 장치에서 수동으로 작업할 필요가 없습니다.

Release에 오케스트레이션 설정 선언(services + programs)
│
▼
장치 에이전트가 목표 상태 동기화 ──▶ 이미지/애플리케이션 패키지 가져오기 ──▶ 서비스 생성 및 시작 ──▶ 지속적인 감시
│ │
│ ▼
└────────────────────────────── 버전 업데이트/롤백 ◀────── 오류 발생 시 자동 재시작
  • 여러 서비스의 시작 순서와 의존 관계는 장치 에이전트가 오케스트레이션 선언에 따라 처리합니다.
  • 서비스가 비정상 종료되면 자동 재시작하고 장치 재시작 후 자동 복구합니다.
  • 버전 업그레이드와 롤백은 Release로 관리하며 장치 에이전트가 자동 수행합니다.

다음은 Release의 오케스트레이션 구성입니다. 전체 필드는 docker-compose 호환성과 확장을 참조하세요.

version: "2.4"
services:
app:
image: myapp:1.0.0
restart: always
ports:
- "8080:80"
depends_on:
- db
db:
image: postgres:16
volumes:
- dbdata:/var/lib/postgresql/data
programs:
collector:
command: collector --config /data/collector.conf
restart: on-failure
volumes:
dbdata:

Release를 생성할 때 오케스트레이션 구성을 입력합니다. 편집 모드 또는 파일 업로드를 지원합니다. 애플리케이션 패키지(컨테이너 이미지 / 네이티브 애플리케이션 패키지)는 Release 상세 화면에서 업로드합니다. 자세한 절차는 다음을 참조하세요.

  • 오케스트레이션의 데이터 볼륨은 컨테이너 수명 주기와 독립적이므로 컨테이너 재생성이나 업그레이드가 데이터에 영향을 주지 않습니다.
  • 중요 데이터는 장치의 데이터 파티션에도 마운트하는 것이 좋습니다.
  • 오케스트레이션은 2.x 규격을 기반으로 지원하며 일반적인 오케스트레이션 파일을 바로 사용할 수 있습니다.
  • 3.x에서 추가된 필드는 지원 범위에 포함되지 않습니다.
  • 전체 필드와 호환성 안내는 docker-compose 호환성과 확장을 참조하세요.