Skip to main content
Quay lại Blog

Docker trên Synology DSM 7.2 — Container Manager, Compose và lỗi bind mount

· One min read
Vu Nguyen
Java / Backend Engineer

Vài stack tôi từng chạy trên LXC/VM giờ gom về NAS Synology — một máy, ít layer ảo hóa, dữ liệu và container cùng chỗ. Trên DSM 7.2, Docker không còn package “Docker” cũ mà là Container Manager: Compose trong GUI, nhưng có vài “bẫy” khác hẳn Linux thuần.

Sau khi chuyển homelab sang mini PC chạy DSM, tôi muốn gom container từ Proxmox/LXC về một nơi: backup volume NAS quen thuộc, ít VM “ăn” RAM. Bước đầu không phải học API mới — chỉ cần Container Manager trên DSM 7.2 và vài thói quen Compose đã dùng trên VPS.

Ảnh minh họa

Bấm vào hình hoặc dùng carousel để xem full màn hình (Esc để thoát).

Container Manager trên DSM — Project, container và volume trên cùng một NAS.

:::info Không phải VPS? Nếu bạn chỉ có Linux thuần, xem Dockge hoặc monitoring Docker. Bài này tập trung Synology + DSM. :::

DSM 7.2: Container Manager thay package Docker

Phiên bản DSMPackageGhi chú
6.x, 7.0–7.1DockerGUI container/image cơ bản
7.2+Container ManagerThêm Project (Compose stack), registry, log tập trung

Cài đặt: Package Center → tìm Container Manager → Install. Khởi động lại package nếu được nhắc sau update DSM.

Package Center: tìm và cài **Container Manager** (DSM 7.2).

Các mục trong Container Manager

  • Overview — CPU, RAM, network tổng quan.
  • Project — stack Docker Compose (đây là nơi bạn sẽ làm việc nhiều nhất).
  • Container — container đang chạy/dừng.
  • Image — image đã pull.
  • Registry — shortcut pull image phổ biến.
  • Network — bridge/macvlan…
  • Log — thông báo từ engine và container.

Tạo stack mới từ GUI (Project)

  1. Container ManagerProjectCreate.
  2. Project name — tên hiển thị (ví dụ uptime-kuma).
  3. Path — thư mục trên NAS lưu docker-compose.yml (ví dụ /volume1/docker/uptime-kuma).
  4. Source — chọn Create docker-compose.yml, dán nội dung Compose.
  5. Next → bỏ qua Web portal nếu chưa cần reverse proxy DSM.
  6. Tick Start the project once it is createdDone.

Ví dụ stack nhẹ để thử:

compose-uptime-kuma-synology.yaml
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
restart: unless-stopped
ports:
- "3001:3001"
volumes:
- ./data:/app/data

Sau khi chạy, mở http://<IP-NAS>:3001 (hoặc hostname nội bộ). Firewall DSM: Control Panel → Security nếu port bị chặn.

Lỗi bind mount: Synology không tự tạo thư mục host

Trên Linux server, bind mount ./config:/config thường tự tạo thư mục khi docker compose up. Trên Synology, bạn hay gặp:

synology-bind-mount-error.txt
Error response from daemon: Bind mount failed: ...

Nguyên nhân: engine DSM không tạo thư mục host mới khi start project; path trong volumes: phải đã tồn tại.

Lỗi **Bind mount failed** — thường do thư mục host chưa có.

Cách xử lý:

  1. File Station (hoặc SSH) → mở path project (ví dụ /volume1/docker/uptime-kuma).
  2. Tạo tay các thư mục khớp compose (data, config, …).
  3. Project → chọn project → ActionBuild (hoặc start lại).
**File Station**: tạo thư mục `data` / `config` khớp với `volumes:` trong compose.

:::tip Quy ước thư mục Tôi hay để mọi stack dưới /volume1/docker/<tên-stack>/ — backup Hyper Backup/ Snapshot một lần, dễ migrate. :::

Import docker-compose.yml đã có sẵn

Bạn không bắt buộc paste trong wizard:

  1. Tạo thư mục + file docker-compose.yml bằng Text Editor, SFTP, hoặc rsync từ máy khác.
  2. ProjectCreatePath trỏ vào thư mục đó.
  3. DSM đọc file compose có sẵn → Next → start.
Chọn path đã có **docker-compose.yml** — DSM load file vào project mới.

Workflow này khớp khi bạn đã version-control stack trên Git và chỉ đồng bộ lên NAS.

Sau khi stack chạy

  • Overview — xem CPU/RAM/network toàn hệ.
  • ContainerLogs — debug tương đương docker logs -f.
  • Cập nhật image: ProjectActionBuild / pull image mới trong tab Image rồi recreate container (tùy stack).
**Overview** sau khi stack chạy — CPU, RAM, network trên một màn hình.

Khi NAS bắt đầu “đầy” container, cân nhắc monitoring hoặc docker stats qua SSH nếu bật terminal.

SSH và CLI (tùy chọn)

Container Manager đủ cho nhiều tác vụ; khi cần script:

  1. Control PanelTerminal & SNMP → bật SSH.
  2. sudo docker ps / sudo docker compose -f /volume1/docker/.../docker-compose.yml logs -f

Quyền user phải thuộc nhóm docker hoặc dùng sudo — tùy cấu hình DSM.

:::warning Bản quyền & phần cứng Bài viết giả định Synology NAS chính hãng với DSM được hỗ trợ. Chạy DSM trên hardware không được chứng nhận có rủi ro pháp lý và update — tự đánh giá trước khi làm homelab production. :::

Tổng kết

  • DSM 7.2Container Manager, không còn package Docker cũ.
  • Deploy qua Project + Compose; import folder có docker-compose.yml sẵn.
  • Tạo thư mục bind mount trước — khác biệt lớn so với Linux/VPS.
  • Overview cho metrics; SSH khi cần automation.

NAS không thay VPS cho mọi workload — nhưng để chạy vài dịch vụ nội bộ (monitor, memo, tunnel agent…) gần dữ liệu, Container Manager + Compose là lối vào ít ma sát nhất tôi đang dùng.