이 글을 읽고 있다는 것은 Synology NAS 를 샀는데 Docker 에 대해서는 잘 모르고 있을 가능성이 높다.
결론부터 한 줄로 정리하면
Synology의 Container Manager는 Docker CLI 위에 얹힌 “관리 UI”이고,
실제 Docker 엔진은 리눅스 백그라운드에서 그대로 돌아가고 있다.
전체 구조 한 번에 보기

1️⃣ Docker CLI와 Container Manager의 관계
🔹 Docker CLI
docker ps,docker run,docker compose up진짜 Docker를 직접 조작하는 도구
SSH 접속해서 실행
표준 Docker 환경과 동일
🔹 Container Manager
DSM 웹에서 클릭으로 관리
내부적으로는 Docker API를 호출
CLI 명령을 대신 실행해주는 관리자
👉 즉,
Container Manager = docker 명령을 대신 쳐주는 GUI
2️⃣ “Docker는 어디에 존재할까?”
Synology에서 Docker는 이렇게 관리됩니다.
✔ 실제 Docker 위치
DSM 내부 리눅스 OS
dockerd데몬이 백그라운드에서 상시 실행Synology가 빌드·패키징한 Docker 엔진
✔ 사용자가 직접 보는 건
❌ Docker 엔진 자체
✅ Container Manager UI
✅ SSH로 접근한 Docker CLI
3️⃣ Container Manager가 하는 일 (정확히)
Container Manager는 새로운 컨테이너 시스템이 아닙니다.
| 기능 | 실제로는 |
|---|---|
| 컨테이너 생성 | docker run |
| 컨테이너 시작 | docker start |
| 로그 보기 | docker logs |
| 이미지 다운로드 | docker pull |
| 프로젝트 실행 | docker compose up |
👉 모두 Docker CLI로도 100% 동일하게 제어 가능
4️⃣ CLI로 만든 컨테이너, UI에서 보일까?
✅ 보입니다. 완벽하게.
docker run -d -p 3000:3000 my-app
Container Manager → 컨테이너 목록에 바로 표시
중지 / 재시작 / 로그 확인 가능
반대로도 마찬가지입니다.
UI에서 만든 컨테이너 = CLI에서도 동일하게 존재
5️⃣ Docker Compose는 어떻게 관리될까?
Synology의 Project 기능은 사실상:
Docker Compose 관리 전용 UI
내부 동작
docker-compose.yml저장docker compose up/down실행컨테이너들을 하나의 프로젝트 단위로 묶어 관리
차이점
| CLI | Container Manager |
|---|---|
| 파일 직접 편집 | UI 입력 |
| git 연동 자유 | 제한적 |
| 자동화 쉬움 | 운영은 편함 |
6️⃣ Synology가 “Docker를 통제”하고 있을까?
👉 아니요. Docker는 표준 Docker입니다.
다만,
DSM에 맞게 패키징
권한 / 볼륨 경로를 Synology 방식으로 관리
GUI 중심 운영을 권장
그래서 느낌은 이렇습니다.
Docker는 완전히 열려 있는데
Synology가 안전한 울타리(UI) 를 씌워둔 상태
7️⃣ 언제 CLI를 쓰고, 언제 UI를 쓸까?
🔹 Container Manager가 좋은 경우
서비스 운영
상태 확인
재시작, 로그 확인
NAS 관리 목적
🔹 Docker CLI가 필요한 경우
자동 배포 (CI/CD)
GitHub Actions 연동
스크립트 기반 관리
복잡한 compose 구성
개발자 워크플로우
👉 실전에서는 둘 다 씁니다.
핵심 정리
Docker는 DSM 내부 리눅스에서 정상적으로 실행
Container Manager는 Docker 위에 얹힌 관리 UI
CLI ↔ UI는 같은 Docker 엔진을 공유
컨테이너는 하나의 실체, 접근 방법만 다름