대체 Synology Container Manager 와 Docker CLI 는 무슨 관계일까?

이 글을 읽고 있다는 것은 Synology NAS 를 샀는데 Docker 에 대해서는 잘 모르고 있을 가능성이 높다.

결론부터 한 줄로 정리하면

Synology의 Container Manager는 Docker CLI 위에 얹힌 “관리 UI”이고,
실제 Docker 엔진은 리눅스 백그라운드에서 그대로 돌아가고 있다
.

전체 구조 한 번에 보기

Pasted image 20260110110412.png


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 실행

  • 컨테이너들을 하나의 프로젝트 단위로 묶어 관리

차이점

CLIContainer 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 엔진을 공유

  • 컨테이너는 하나의 실체, 접근 방법만 다름