목차
- NAS에 Docker까지? Synology Docker, 생각보다 훨씬 강력합니다
- Synology Docker가 뭔가요? 컨테이너 관리, 쉽게 이해하기
- 왜 NAS에서 Synology Docker를 쓰나요?
- Container Manager vs 순수 Docker CLI, 뭐가 다를까?
- 시작 전 체크리스트: 내 NAS, Docker 돌릴 수 있을까?
- 지원 모델 확인
- 권장 사양
- Container Manager 설치 및 첫 설정 — 단계별 가이드
- 1단계: Container Manager 설치
- 2단계: 이미지(Image) 다운로드
- 3단계: 컨테이너 생성 — Portainer 예시
- 4단계: Docker Compose로 다중 컨테이너 관리하기
- ⚠️ 이거 모르면 삽질합니다 — 주의사항 & 트러블슈팅
- ⚠️ 문제 1: 포트 충돌 (Port Conflict)
- ⚠️ 문제 2: 볼륨 경로 권한 (Permission) 문제
- ⚠️ 문제 3: 메모리 부족으로 컨테이너 멈춤 (OOM Kill)
- ⚠️ 문제 4: 이미지 용량이 커서 디스크 부족
- 실제 결과 확인 — 제 NAS에서 돌아가는 컨테이너들
- 자주 묻는 질문 (FAQ)
- Q. Container Manager와 Docker 앱의 차이가 뭔가요?
- Q. ARM 기반 NAS에서는 Synology Docker를 못 쓰나요?
- Q. NAS Docker에서 GPU 가속을 사용할 수 있나요?
- Q. 컨테이너 데이터는 NAS 어디에 저장되나요?
- 마무리: Synology Docker로 홈랩 시작하기
NAS에 Docker까지? Synology Docker, 생각보다 훨씬 강력합니다
혹시 이런 경험 있으신가요? NAS를 파일 서버로만 쓰다가 어느 날 문득 "이거 더 활용할 수 있지 않을까?" 하는 생각이 드는 순간. 저도 딱 그랬거든요. 처음에 Synology NAS를 샀을 때는 그냥 백업이나 하려고 했는데, 어느새 홈랩의 핵심 노드가 되어있더라고요 ㅎㅎ
그 중심에 있는 게 바로 Synology Docker입니다. NAS에서 컨테이너(Container, 독립된 실행 환경)를 돌릴 수 있다는 게 처음엔 "이게 말이 되나?" 싶었는데, 실제로 써보니까 진짜 편하더라고요. 서버 한 대 더 사지 않아도 되고, 24시간 켜져 있는 NAS에서 각종 앱을 조용히 돌릴 수 있으니까요.
이 글에서는 Synology Docker를 처음 설치하는 것부터, 실제로 컨테이너 앱을 띄우고 관리하는 법까지 제가 직접 삽질하면서 얻은 노하우를 공유해 드릴게요. NAS Docker 활용을 막 시작하려는 분들께 특히 도움이 될 거예요.
▲ Synology NAS 위에서 여러 컨테이너 앱이 동작하는 전체 구조 — 파일 서버를 넘어 앱 서버로 진화하는 NAS
Synology Docker가 뭔가요? 컨테이너 관리, 쉽게 이해하기
먼저 개념부터 짚고 가겠습니다. 기술 용어가 익숙하지 않으신 분들도 계실 테니까요.
Docker(도커)는 쉽게 말해 앱을 "도시락통"에 담아서 어디서든 똑같이 실행할 수 있게 해주는 기술이에요. 이 도시락통 하나하나를 컨테이너(Container)라고 부릅니다. 예전에는 앱을 설치하면 의존성 문제("이 라이브러리가 없어요", "버전이 달라요")로 삽질하는 경우가 많았는데, Docker를 쓰면 그런 걱정이 확 줄어들거든요.
Synology는 이 Docker를 NAS에서 GUI(그래픽 인터페이스)로 관리할 수 있도록 Container Manager(컨테이너 매니저)라는 앱을 제공합니다. 예전에는 "Docker" 앱이라는 이름이었는데, DSM 7.2부터 Container Manager로 이름이 바뀌었어요. 기능은 더 좋아졌고요.
왜 NAS에서 Synology Docker를 쓰나요?
- ✅ NAS는 24시간 365일 켜져 있는 기기 — 항상 실행 중인 서비스에 딱 맞음
- ✅ 별도 서버 없이 홈서버 역할을 동시에 수행
- ✅ 전력 소비가 낮아 전기세 절약
- ✅ Synology의 GUI 덕분에 명령어 없이도 관리 가능
- ⚠️ 단, CPU와 RAM이 충분해야 함 — 저사양 모델은 주의 필요
Container Manager vs 순수 Docker CLI, 뭐가 다를까?
| 항목 | Synology Container Manager | 순수 Docker CLI |
|---|---|---|
| 사용 방식 | GUI (웹 브라우저) | CLI (명령어) |
| 진입 장벽 | 낮음 (초보자 친화적) | 높음 (Linux 지식 필요) |
| Docker Compose 지원 | ✅ 지원 (프로젝트 기능) | ✅ 지원 |
| 로그 확인 | GUI에서 바로 확인 | docker logs 명령어 |
| 포트 관리 | GUI에서 설정 | -p 옵션으로 설정 |
| 유연성 | 보통 | 높음 |
저는 평소엔 CLI도 많이 쓰지만, Synology에서는 Container Manager GUI가 생각보다 편해서 자주 활용하게 되더라고요. 특히 포트 충돌 확인할 때 시각적으로 보이니까 좋았어요.
시작 전 체크리스트: 내 NAS, Docker 돌릴 수 있을까?
Container Manager를 설치하기 전에 먼저 확인할 게 있어요. 저도 처음에 이 부분을 건너뛰었다가 나중에 메모리 부족으로 고생했거든요 😅
지원 모델 확인
모든 Synology NAS가 Docker를 지원하는 건 아닙니다. Intel 또는 AMD x86-64 CPU가 탑재된 모델만 지원해요. ARM 기반의 저가형 모델(J 시리즈 일부)은 지원하지 않을 수 있어요.
- ✅ 지원: DS923+, DS723+, DS1522+, DS920+, DS720+ 등 Plus/XS 시리즈
- ⚠️ 미지원: DS223j, DS124 같은 저가형 J/Value 시리즈 일부
Synology 공식 사이트에서 모델명으로 검색하면 Container Manager 지원 여부를 바로 확인할 수 있어요.
권장 사양
- RAM: 최소 4GB, 여러 컨테이너 동시 실행 시 8GB 이상 권장
- 스토리지: 이미지(Image) 저장 공간 여유 필요 (최소 20GB 이상 권장)
- DSM 버전: DSM 7.0 이상 (Container Manager는 DSM 7.2부터)
Container Manager 설치 및 첫 설정 — 단계별 가이드
자, 이제 본격적으로 시작해 볼게요. 생각보다 어렵지 않으니까 따라오세요!
1단계: Container Manager 설치
- DSM(Synology 웹 관리 화면)에 로그인합니다
- 패키지 센터(Package Center)를 엽니다
- 검색창에 "Container Manager" 입력
- 설치 버튼 클릭 → 자동으로 설치 완료
- 설치 후 메인 화면에 Container Manager 아이콘이 생깁니다
설치 자체는 5분도 안 걸려요. 패키지 센터에서 클릭 몇 번이면 끝입니다 ✅
2단계: 이미지(Image) 다운로드
컨테이너를 만들려면 먼저 이미지(Image, 컨테이너의 설계도)가 필요합니다. Docker Hub(도커 허브, 공식 이미지 저장소)에서 가져올 수 있어요.
- Container Manager 실행 → 왼쪽 메뉴에서 이미지(Image) 클릭
- 상단의 추가 → URL에서 추가 클릭
- 원하는 이미지 이름 입력 (예:
nginx:latest,portainer/portainer-ce:latest) - 다운로드 버튼 클릭 → 자동으로 Pull(풀, 이미지 내려받기) 시작
또는 레지스트리(Registry) 탭에서 Docker Hub를 직접 검색해서 이미지를 찾을 수도 있어요. 초보분들께는 이 방법이 더 편할 거예요.
▲ Container Manager의 이미지 관리 화면 — 검색부터 다운로드까지 GUI에서 모두 처리 가능
3단계: 컨테이너 생성 — Portainer 예시
실습 예시로 Portainer(포테이너, 컨테이너 웹 관리 도구)를 설치해 볼게요. Portainer 자체가 Docker 관리 GUI라서 "Docker 위에 Docker 관리 도구 올리기"가 좀 웃기긴 한데, 실제로 많이 쓰이는 조합이에요 ㅎㅎ
- Container Manager → 컨테이너(Container) → 생성 클릭
- 이미지 선택:
portainer/portainer-ce:latest - 컨테이너 이름 입력:
portainer - 고급 설정으로 이동
- 포트 설정:
- 로컬 포트
9000→ 컨테이너 포트9000 - 로컬 포트
8000→ 컨테이너 포트8000
- 로컬 포트
- 볼륨(Volume, 데이터 영구 저장소) 설정:
- 파일/폴더 추가 →
/var/run/docker.sock→ 마운트 경로/var/run/docker.sock - 폴더 추가 → NAS의
/volume1/docker/portainer→ 마운트 경로/data
- 파일/폴더 추가 →
- 환경 변수, 네트워크 설정 확인 후 완료 클릭
💡 여기서 중요한 포인트! 볼륨 설정을 꼭 해주세요. 안 하면 컨테이너를 재시작했을 때 모든 데이터가 날아가거든요. 저도 초반에 이걸 빼먹고 설정을 두 번 날렸습니다 😭
4단계: Docker Compose로 다중 컨테이너 관리하기
컨테이너가 여러 개이거나 설정이 복잡할 때는 Docker Compose(도커 컴포즈, 다중 컨테이너 정의 파일)를 쓰는 게 훨씬 편해요. Container Manager에서는 프로젝트(Project) 기능이 바로 이 Docker Compose를 지원합니다.
- Container Manager → 프로젝트 → 생성
- 프로젝트 이름 입력
- 경로 설정 (NAS의 공유 폴더 선택)
- 아래 YAML 내용 입력 또는 파일 업로드
# docker-compose.yml 예시 — Nginx + Portainer 동시 구성
version: '3.8'
services:
nginx:
image: nginx:latest
container_name: my-nginx
ports:
- "8080:80"
volumes:
- /volume1/docker/nginx/html:/usr/share/nginx/html
- /volume1/docker/nginx/conf:/etc/nginx/conf.d
restart: unless-stopped
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
ports:
- "9000:9000"
- "8000:8000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /volume1/docker/portainer:/data
restart: unless-stopped
이렇게 YAML 파일 하나로 여러 컨테이너를 한 번에 올리고 내릴 수 있어요. 나중에 설정을 수정하거나 다른 NAS로 이전할 때도 파일 하나만 복사하면 되니까 진짜 편하더라고요.
restart: unless-stopped 옵션은 NAS가 재부팅됐을 때 컨테이너를 자동으로 다시 시작해주는 설정이에요. 이거 꼭 넣으세요!
⚠️ 이거 모르면 삽질합니다 — 주의사항 & 트러블슈팅
13년 동안 인프라 엔지니어로 일하면서 "미리 알았으면 좋았을 텐데" 싶은 것들을 정리했어요. 특히 Synology Docker 특유의 주의사항들이 있어서요.
⚠️ 문제 1: 포트 충돌 (Port Conflict)
Synology DSM 자체가 이미 여러 포트를 사용 중이에요. 컨테이너에 같은 포트를 배정하면 충돌이 납니다.
DSM이 기본으로 사용하는 주요 포트:
- 5000: DSM HTTP
- 5001: DSM HTTPS
- 80, 443: Reverse Proxy(리버스 프록시) 사용 시
- 22: SSH
저는 처음에 Nginx 컨테이너에 80번 포트를 배정했다가 DSM 리버스 프록시랑 충돌해서 한참 헤맸어요. 컨테이너용 포트는 8080, 8443, 9000번대를 쓰는 게 마음 편합니다.
⚠️ 문제 2: 볼륨 경로 권한 (Permission) 문제
NAS의 폴더를 컨테이너에 마운트했는데 "Permission denied" 오류가 뜨는 경우가 있어요. 이건 NAS의 폴더 권한과 컨테이너 내부 사용자 UID가 달라서 생기는 문제예요.
해결 방법:
- DSM → 제어판 → 공유 폴더 → 해당 폴더 → 권한 편집에서
admin에게 읽기/쓰기 권한 부여 - 또는 Docker Compose에서 환경 변수에
PUID,PGID설정 (LinuxServer.io 이미지의 경우)
environment:
- PUID=1026 # NAS의 admin 사용자 UID
- PGID=100 # users 그룹 GID
💡 NAS의 UID/GID 확인은 DSM에서 SSH 접속 후 id admin 명령어로 확인할 수 있어요.
⚠️ 문제 3: 메모리 부족으로 컨테이너 멈춤 (OOM Kill)
컨테이너가 갑자기 멈추거나 자꾸만 재시작을 반복한다면 메모리 부족(OOM, Out of Memory) 때문일 가능성이 높아요. 컨테이너 생성 시 메모리 제한을 설정해서 특정 컨테이너가 메모리를 독점하는 걸 막는 게 좋습니다.
services:
my-app:
image: my-app:latest
mem_limit: 512m # 최대 512MB 메모리 제한
memswap_limit: 512m # 스왑 포함 메모리 제한
⚠️ 문제 4: 이미지 용량이 커서 디스크 부족
Docker 이미지는 생각보다 크거든요. 이미지 몇 개 받다 보면 금방 수십 GB가 돼요. 주기적으로 안 쓰는 이미지를 정리해줘야 합니다.
Container Manager → 이미지 → 미사용 이미지 선택 → 삭제
또는 SSH로 접속해서:
# 사용하지 않는 이미지, 컨테이너, 볼륨 한 번에 정리
docker system prune -a
실제 결과 확인 — 제 NAS에서 돌아가는 컨테이너들
드디어 됐다! 하는 그 쾌감이 있죠 🎉 제가 현재 Synology NAS에서 돌리고 있는 컨테이너 목록을 살짝 공개해 드릴게요. 참고로 저는 DS923+에 RAM 32GB로 업그레이드해서 쓰고 있어요.
| 컨테이너 | 용도 | 메모리 사용 | 포트 |
|---|---|---|---|
| Portainer | Docker 웹 관리 UI | ~50MB | 9000 |
| Nginx Proxy Manager | 리버스 프록시 + SSL | ~80MB | 80, 443, 81 |
| Vaultwarden | 비밀번호 관리 (Bitwarden 호환) | ~30MB | 8880 |
| Uptime Kuma | 서비스 모니터링 대시보드 | ~120MB | 3001 |
| Heimdall | 홈랩 대시보드 | ~60MB | 8082 |
| Jellyfin | 미디어 서버 | ~300MB | 8096 |
전부 합쳐도 1GB 남짓이에요. 이걸 별도 서버로 돌리면 전기세가 꽤 나올 텐데, NAS 하나로 다 해결하니까 정말 효율적이더라고요.
특히 Uptime Kuma(업타임 쿠마, 서비스 상태 모니터링 도구)는 강력 추천입니다. 제가 운영하는 서비스들이 살아있는지 실시간으로 확인할 수 있고, 다운되면 알림도 보내줘요. 이거 설치하고 나서 장애 대응 시간이 확 줄었어요.
▲ Uptime Kuma 모니터링 대시보드 — NAS에서 돌아가는 컨테이너 앱들의 상태를 한눈에 확인
자주 묻는 질문 (FAQ)
Q. Container Manager와 Docker 앱의 차이가 뭔가요?
A. 사실상 같은 기능입니다. Synology가 DSM 7.2부터 "Docker" 앱을 "Container Manager"로 리브랜딩하면서 Docker Compose 지원(프로젝트 기능)을 강화했어요. 기존 Docker 앱 사용자는 업데이트하면 자동으로 Container Manager로 전환됩니다.
Q. ARM 기반 NAS에서는 Synology Docker를 못 쓰나요?
A. 공식 Container Manager는 x86-64만 지원하지만, 일부 ARM 모델에서는 SSH로 직접 Docker를 설치해서 쓰는 방법이 있어요. 다만 공식 지원이 아니라서 안정성 보장이 안 되고, DSM 업데이트 후 깨질 수 있어요. 권장하지는 않습니다.
Q. NAS Docker에서 GPU 가속을 사용할 수 있나요?
A. Intel iGPU(내장 그래픽) 패스스루는 일부 지원됩니다. Jellyfin 같은 미디어 서버에서 하드웨어 트랜스코딩에 활용할 수 있어요. NVIDIA GPU는 공식 지원하지 않아요.
Q. 컨테이너 데이터는 NAS 어디에 저장되나요?
A. 볼륨 마운트 설정에 따라 다르지만, 보통 /volume1/docker/ 하위에 앱별로 폴더를 만들어서 관리하는 게 깔끔해요. 이렇게 하면 나중에 백업도 편하거든요.
마무리: Synology Docker로 홈랩 시작하기
처음에 "NAS에서 Docker를?" 하고 반신반의했던 게 엊그제 같은데, 지금은 NAS 없이는 홈랩을 못 운영할 것 같은 느낌이에요. 그만큼 Synology Docker(Container Manager)가 일상적인 인프라 운영 도구로 자리잡았거든요.
오늘 다룬 내용을 정리하면:
- ✅ Container Manager는 패키지 센터에서 간단히 설치
- ✅ GUI로 이미지 관리, 컨테이너 생성, 로그 확인 모두 가능
- ✅ Docker Compose(프로젝트 기능)로 다중 컨테이너를 파일 하나로 관리
- ✅ 볼륨 마운트와 포트 설정만 잘 해도 대부분의 문제 예방 가능
- ⚠️ 포트 충돌, 권한 문제, 메모리 관리는 미리 체크하기
다음 글에서는 Nginx Proxy Manager를 활용해서 컨테이너 앱에 도메인과 HTTPS를 붙이는 방법을 다룰 예정이에요. 외부에서 안전하게 접속하는 방법인데, 생각보다 어렵지 않으니까 기대해 주세요!
궁금한 점이나 삽질 경험 있으신 분들은 댓글로 공유해 주세요. 저도 아직 배우는 중이라, 같이 얘기 나누면 더 좋을 것 같아요 😊
▲ Synology Docker 활용 완전 가이드 요약 — 설치부터 실전 운영까지 핵심 포인트 한눈에 보기
'IT > Nas' 카테고리의 다른 글
| [Synology NAS] 데이터 복구 및 백업 전략: Hyper Backup과 Snapshot Replication 완벽 가이드 (1) | 2026.04.18 |
|---|---|
| [NAS] Synology DSM 7.2 vs 7.3 비교: 내 환경에 맞는 버전 선택법 (0) | 2026.04.17 |
| [NAS] SMB 다중 사용자 동시 접속 시 성능 저하 해결 방안 (1) | 2026.04.17 |
| [Nas] TrueNAS SCALE SMB 공유 설정 및 성능 최적화 완벽 가이드 (0) | 2026.04.10 |
| [Nas] Synology DSM 7.3: 불변 스냅샷과 스토리지 계층화로 강화한 NAS 데이터 보안 (0) | 2026.04.09 |
| [Nas] NAS 초보 필독! RAID 종류별 장단점 비교 및 나에게 맞는 RAID 선택 가이드 (0) | 2026.04.06 |