일반적인 운영에 필요한 서비스는 프로필을 지정하지 않고 남겨 두며, 모니터링, 관리자 UI, 디버깅 셸, 일괄 작업 또는 실험적 애플리케이션 같은 선택적 도구에만 프로필을 지정하여 Docker Compose 프로필을 설정하세요.
프로필은 서비스 선택 메커니즘이지 보안 경계나 종속성 해결 도구가 아닙니다. 가장 안전한 홈 서버 설계는 기본 스택을 명확히 하고, 프로필 이름을 목적에 맞게 지정하며, 프로필 또는 특정 서비스 하나를 대상으로 실행했을 때 무엇이 시작되는지 테스트하는 것입니다.
최소 정상 작동 스택은 프로필 없이 유지하기
애플리케이션이 정상적으로 작동하려면 항상 있어야 하는 서비스를 식별하세요. 여기에는 핵심 웹 앱, 데이터베이스, 큐, 인증 서비스 또는 실제로 필수 종속성인 경우의 리버스 프록시가 포함됩니다. 이러한 서비스에는 프로필을 지정하지 않아 일반적인 docker compose up -d 명령에 포함되도록 하세요.
최근의 프로필이 없는 서비스는 기본적으로 시작됩니다라는 설명은 정확히 이러한 관점을 사용합니다. 기본 서비스는 항상 사용할 수 있도록 유지하고, 디버깅 및 선택적 도구는 필요할 때만 활성화하는 방식입니다.
개발 중 프런트엔드만 실행하는 경우가 있다고 해서 핵심 데이터베이스에 프로필을 지정하지 마세요. 프로덕션과 문제 해결의 목표는 서로 다릅니다. 기본 홈 서버 명령으로 인해 서비스 그래프가 조용히 불완전한 상태가 되어서는 안 됩니다.
선택적 서비스는 목적별로 그룹화하기
유용한 프로필 이름은 서비스가 선택적인 이유를 설명합니다. 예를 들어 monitoring, debug, admin, batch, ai 또는 experimental처럼 지정할 수 있습니다. 이는 각 컨테이너마다 하나씩 프로필을 만드는 것보다 확장성이 좋습니다.
2026년에 작성된 목적별로 그룹화한 프로필 사례에서는 모니터링, 개발자 도구 및 일괄 작업을 자연스러운 프로필 그룹으로 소개하며, 각 프로필이 추가하는 서비스를 문서화할 것을 권장합니다.
ZimaSpace의 선택적으로 사용할 수 있는 홈 서버 애플리케이션 목록은 이 기법을 적용할 적절한 범위를 보여 줍니다. 하나의 Compose 프로젝트에 항상 실행하고 싶지는 않은 서비스가 포함되어 있을 때 프로필이 유용합니다.
프로필이 종속성을 자동으로 해결한다고 가정하지 않기
프로필이 지정된 서비스가 프로필 없는 핵심 서비스에 의존하는 것은 문제없이 처리할 수 있습니다. 문제는 선택적으로 프로필을 지정한 한 서비스가 현재 모델에서 활성화되지 않은 다른 프로필의 서비스에 의존할 때 발생합니다. Compose는 “이 서비스들은 함께 속한다”라는 사람의 의도만으로 모든 프로필 관계를 추론할 수 없습니다.
프로필 지정은 실제 서비스 종속성과도 일치해야 합니다. 실제 시작 종속성에만 명시적인 depends_on을 사용하고, 지원하는 모든 프로필 조합에 대해 확인된 Compose 모델을 검사하세요.
지원하는 각 프로필 조합에 대해 확인된 Compose 모델을 생성하거나 검사하세요. YAML 파일이 파싱된다는 것만으로는 충분하지 않습니다. 하나의 프로필을 활성화했을 때 유효하지 않거나 불완전한 종속성 그래프가 만들어질 수 있기 때문입니다.
특정 서비스의 직접 실행과 프로필 활성화를 별도로 테스트하기
프로필이 지정된 서비스를 직접 대상으로 실행하는 것은 특별한 경우입니다. 최근 홈랩 안내에서는 대상 지정 실행은 의도적으로 범위가 좁다고 설명합니다. 지정한 서비스와 선언된 종속성은 시작되지만, 같은 프로필을 공유하는 다른 서비스가 자동으로 함께 시작되지는 않습니다.
2026년 프로필을 아껴 사용하기에 관한 글에서는 나중에 아무도 이해할 수 없는 숨겨진 배포 구성을 만들기보다 선택적 도구에 프로필을 제한적으로 사용할 것을 권장합니다.
스택에 의존하기 전에 다음 네 가지 경우를 테스트하세요. 프로필 없음, 각 프로필을 개별적으로 활성화한 경우, 지원하는 프로필 조합, 그리고 프로필이 지정된 특정 서비스 하나를 직접 대상으로 한 경우입니다. 각 경우에 어떤 컨테이너가 실행되고 실행되지 않아야 하는지 기록하세요.
보안 및 데이터 영속성 결정에서 프로필을 분리하기
기본적으로 비활성화된 서비스라고 해서 활성화했을 때 안전한 것은 아닙니다. 관리자 도구에도 인증, 네트워크 제한, 안전한 포트 공개 및 적절한 파일 시스템 권한이 필요합니다. 마찬가지로 선택적 서비스를 중지한다고 해서 명시적으로 의도하지 않은 경우 영속 데이터가 삭제되어서는 안 됩니다.
볼륨, 네트워크, 시크릿 및 백업 책임은 프로필 이름과 별도로 문서화하세요. 선택적 모니터링 서비스에는 폐기 가능한 지표 데이터가 있을 수 있지만, 선택적 데이터베이스 관리 UI가 문제 해결 중에만 실행된다는 이유로 광범위한 자격 증명을 부여해서는 안 됩니다.
docker compose up -d가 예측 가능한 정상 작동 핵심 스택을 시작하고, 각 명명된 프로필이 복구 모델을 바꾸지 않으면서 문서화된 선택적 서비스 집합을 추가한다면 프로필은 성공적으로 구성된 것입니다. 운영자가 데이터베이스를 활성화하는 프로필을 추측하기 위해 다이어그램이 필요하다면 Compose 파일을 단순화하세요.
지원 및 팁
더 읽어보기

Docker 재시작 정책을 데이터베이스, 워커 및 웹 앱에 맞추는 방법
서비스 수명 주기와 종료 의미에 맞게 재시작 정책을 설정하세요. 상태 점검 및 준비 상태 점검과 함께 사용하고, 종속성 오류를 숨기기 위해 재시작 루프를 사용하지...

여러 NAS 공유에서 컨테이너 사용자 ID를 구성하는 방법
각 컨테이너의 UID/GID를 NAS 공유 폴더에 매핑하고, 필요하면 공유 그룹이나 ACL을 사용하세요. 또한 PUID/PGID는 모든 Docker에 공통으로 적용되는 설정이 아니라 이미지별 설정임을 유의하세요.

NAS 앱 메타데이터의 클라우드 동기화 제외 항목 최적화 방법
복원 역할에 따라 NAS 앱 메타데이터를 분류하세요. 캐시와 임시 상태는 제외하고, 이식 가능한 구성은 의도적으로 보호하며, 운영 중인 데이터베이스는 일반 동기화에서 제외하세요.

