시놀로지 Docker Emby 업데이트
안전하고 효율적인 Emby 서버 관리를 위한 종합 가이드
🚀 시작하기: 업데이트 전 필수 확인 사항
성공적인 업데이트를 위해 Docker의 기본 원리를 이해하는 것이 중요합니다. 특히 데이터 보존은 가장 먼저 고려해야 할 핵심 요소입니다. 아래 용어들을 클릭하여 자세한 설명을 확인하세요.
이미지 (Image) +
컨테이너를 만드는 데 필요한 모든 파일과 설정이 담긴 ‘설계도’입니다. 업데이트는 본질적으로 이 설계도의 새 버전을 받는 것을 의미합니다.
컨테이너 (Container) +
이미지라는 설계도를 바탕으로 실제로 실행되는 독립된 ‘집’입니다. Emby 서버가 이 공간에서 작동하며, 집을 허물어도 설계도는 남아있습니다.
볼륨 (Volume) +
컨테이너 내부의 데이터를 NAS의 실제 폴더와 연결하는 ‘통로’입니다. 설정, 라이브러리 정보 등 중요한 데이터는 반드시 볼륨으로 연결해야 컨테이너를 삭제해도 데이터가 안전하게 보존됩니다.
레지스트리 (Registry) +
Docker 이미지를 보관하고 공유하는 온라인 ‘도서관’입니다. Docker Hub가 가장 대표적이며, 여기서 최신 Emby 이미지를 다운로드합니다.
🚨 가장 중요한 원칙: 백업
어떤 업데이트 방법을 사용하든, 예상치 못한 문제에 대비하는 것이 필수입니다. 시놀로지의 하이퍼 백업(Hyper Backup)을 사용하여 Docker 폴더 전체를 정기적으로 백업하는 습관을 들이세요. 이는 선택이 아닌 필수 안전장치입니다.
🛠️ 업데이트 방법 선택
사용자의 숙련도와 안정성 요구 수준에 따라 적합한 업데이트 방법이 다릅니다. 아래 차트를 통해 각 방법의 특징을 비교하고, 탭을 클릭하여 자세한 절차를 확인하세요.
수동 업데이트 방법론
업데이트 시점과 버전을 직접 통제하여 안정성을 최우선으로 하는 방법입니다. 초보자에게 권장됩니다.
‘클래식’ 방식 (컨테이너 중지-지우기-재생성) +
- 컨테이너 중지: Container Manager → ‘컨테이너’ 탭 → Emby 컨테이너 선택 → 작업 → 중지
- 이미지 다운로드: ‘레지스트리’ 탭 → `emby/embyserver` 검색 → 최신 버전 다운로드
- 컨테이너 삭제: 중지된 Emby 컨테이너 선택 → 작업 → 지우기 (설정은 유지됨)
- 시작점 재설정: ‘지우기’ 완료된 컨테이너 선택 → 작업 → 시작점 클릭하여 재실행
‘다운타임 최소화’ 방식 (설정 복제 후 교체) +
- 새 이미지 다운로드: ‘레지스트리’에서 최신 이미지를 미리 다운로드합니다.
- 설정 복제: 기존 컨테이너 우클릭 → 설정 → 설정 복제 → 새 이름 부여 후 진행
- 새 컨테이너 시작: 복제된 새 컨테이너를 시작하고 로그를 통해 정상 작동 확인
- 기존 컨테이너 삭제: 새 컨테이너가 안정되면 기존 컨테이너를 중지하고 삭제합니다.
고급: SSH 및 CLI 명령어 사용 +
SSH로 NAS에 접속하여 아래 명령어를 순서대로 실행합니다.
# 1. root 권한 획득
sudo -i
# 2. 최신 이미지 다운로드
docker pull emby/embyserver:latest
# 3. 기존 컨테이너 중지 및 삭제 (컨테이너 이름 확인 필요)
docker stop [기존_emby_컨테이너_이름]
docker rm [기존_emby_컨테이너_이름]
# 4. 새 컨테이너 실행 (기존의 모든 볼륨/환경변수 설정 포함)
docker run -d --name=emby ... emby/embyserver:latest
Watchtower를 이용한 자동 업데이트
최신 이미지를 자동으로 감지하여 컨테이너를 업데이트해주는 편리한 도구입니다. 하지만 새 버전의 버그나 호환성 문제에 노출될 위험이 있으므로 신중한 사용과 철저한 백업이 필수입니다.
방법 1: 작업 스케줄러 (가장 간단) +
- 제어판 → 작업 스케줄러로 이동
- 생성 → 예약된 작업 → 사용자 정의 스크립트 선택
- 작업 이름: `Install Watchtower`, 사용자: `root`, ‘활성화’는 체크 해제
- ‘작업 설정’ 탭에 아래 스크립트 붙여넣기
docker run -d --name=watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
--restart=always \
containrrr/watchtower --cleanup
5. 저장 후, 생성된 작업을 선택하고 ‘실행’을 클릭하면 설치됩니다.
방법 2: docker-compose (세부 제어) +
- Container Manager → 프로젝트 → 생성 클릭
- 프로젝트 이름(`watchtower`)과 경로 설정
- 소스에서 `docker-compose.yml` 생성을 선택하고 아래 코드 붙여넣기
version: '3.3'
services:
watchtower:
image: containrrr/watchtower:latest
container_name: watchtower
environment:
- TZ=Asia/Seoul
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_POLL_INTERVAL=43200
volumes:
- /var/run/docker.sock:/var/run/docker.sock
restart: unless-stopped
4. 완료를 클릭하면 생성됩니다. `WATCHTOWER_POLL_INTERVAL` 값(초 단위)을 조절하여 업데이트 확인 주기를 변경할 수 있습니다.
🔍 주요 문제와 해결 방안
업데이트 과정에서 흔히 발생하는 문제들은 대부분 권한과 볼륨 설정에 관련되어 있습니다.
문제: ‘Permission denied’ (권한 거부) 오류 +
원인: 컨테이너 내부의 사용자(UID/GID)와 NAS 폴더의 소유자 권한이 일치하지 않기 때문입니다.
해결책: 컨테이너 생성 시 환경 변수에 `PUID`와 `PGID`를 설정하는 것이 가장 좋은 방법입니다. SSH에서 `id [사용자명]` 명령어로 자신의 ID를 확인한 후, 해당 값을 컨테이너 환경 변수에 추가하여 컨테이너가 내 파일에 접근할 권한을 갖도록 하세요.
문제: 볼륨 마운트 후 컨테이너 실행 실패 +
원인: 일부 컨테이너는 특정 경로(예: `/config`)에 기본 설정 파일이 있어야 실행됩니다. 비어있는 폴더를 이 경로에 마운트하면 필요한 파일이 없어 오류가 발생할 수 있습니다.
해결책: 먼저 볼륨 마운트 없이 컨테이너를 생성하여 정상 실행되는지 확인합니다. 그 후, 컨테이너 터미널에 접속하여 필요한 파일들을 NAS의 마운트할 폴더로 복사한 뒤, 볼륨을 설정하여 컨테이너를 다시 생성합니다.
팁: 어떤 Docker 이미지를 선택해야 할까? +
Emby 이미지는 주로 두 가지가 사용됩니다.
- emby/embyserver (공식): Emby 팀이 직접 관리하여 안정적이고 업데이트가 빠릅니다.
- linuxserver/emby (커뮤니티): 광범위한 커뮤니티 지원을 받으며, 다른 linuxserver 이미지들과 설정 방식(PUID/PGID 등)이 통일되어 관리가 편합니다.
특별한 이유가 없다면 안정성이 높은 공식 이미지를 사용하는 것을 권장합니다.
💡 최종 권장 및 업데이트 전략
궁극적으로 최적의 업데이트 전략은 ‘안전한 백업’을 기반으로 ‘수동 업데이트’에 익숙해진 후, 필요에 따라 ‘자동 업데이트’를 신중하게 도입하는 것입니다.
수동 업데이트
- ✔ 높은 통제력: 업데이트 시점과 버전을 직접 선택할 수 있습니다.
- ✔ 높은 안정성: 업데이트 전 호환성 문제 등을 미리 확인할 수 있습니다.
- ❗ 수고로움: 주기적으로 직접 업데이트를 수행해야 합니다.
자동 업데이트 (Watchtower)
- ✔ 높은 편의성: 업데이트 과정을 완전히 자동화하여 관리가 편합니다.
- ❌ 잠재적 위험: 검증되지 않은 새 이미지의 버그에 그대로 노출될 수 있습니다.
- ❌ 낮은 통제력: 업데이트를 원하지 않을 때도 자동으로 진행될 수 있습니다.
결론적으로, Docker 컨테이너 관리는 데이터 보존 원칙을 이해하고, 안전한 백업 전략을 수립하는 것에서 시작됩니다. 이 가이드가 여러분의 안정적인 미디어 서버 운영에 도움이 되기를 바랍니다.