Deploy 서비스 속성

Deploy 서비스 속성 (Deploy service attribute - reference)

services 요소의 deploy 속성은 서비스 배포와 라이프사이클 설정을 지정해요. 이는 docker compose up으로 배포하는 것과 레거시 docker stack deploy에서 배포하는 것에 따라 동작이 달라질 수 있어요.

출처: 문서

본문

설명 (Description)

deploy 속성은 스택(Swarm) 배포에 관한 설정을 담아요. docker compose 단독 명령에서는 제한적인 하위 집합만 사용돼요.

속성 (Attributes)

  • endpoint_mode: 스택 배포 시 서비스에 도달하는 방식을 정하는 서비스 엔드포인트 모드. vip 또는 dnsrr.
  • labels: 서비스에 적용될 라벨.
  • mode: replicated(복제된 서비스, 기본) 또는 global(전역 서비스).
  • replicas: modereplicated일 때 실행할 컨테이너 수.
  • rollback_config: 실패 시 롤백 정책.
  • update_config: 서비스 업데이트 구성.
  • resources: 스택 배포에서 리소스 제한과 예약.
  • restart_policy: 컨테이너 재시작 시점을 정의하는 정책.
  • placement: 제약 조건과 선호도.
  • max_replicas_per_node: 노드당 최대 복제본 수.

참고:

  • docker stack deploy에서는 deploy가 활성화되고 reserve·limits·placement·restart_policy 같은 설정이 사용돼요.
  • docker compose up에서는 restart_policyrestart 속성으로 변환되어 부분 지원되어요.
  • resourcesreservationscpusmemory를, limits는 노드 수준 리소스 제한을 지정해요.

리소스 예시 (Resources example)

services:
  frontend:
    image: example/webapp
    deploy:
      mode: replicated
      replicas: 2
      resources:
        limits:
          cpus: '0.50'
          memory: 50M
        reservations:
          cpus: '0.25'
          memory: 20M

주의:

deploy.resources는 리소스 예약을 위한 것이고, docker compose up에서는 적용되지 않아요. 대신 서비스 컨테이너의 리소스 한도는 limits·cpus·mem_limit 속성으로 지정해요.

더 알아보기 (Learn more)

  • Compose deployment docs와 docker stack deploy 문서를 참고해요.