Vì sao nên cài Portainer bằng Container Manager, không phải SSH
Portainer là dashboard quản lý Docker đẹp nhất bạn có thể có trên NAS Synology — thấy container, log, network, volume trực quan hơn hẳn giao diện Container Manager gốc. Vấn đề là 90% bài hướng dẫn tiếng Anh đều bảo bạn SSH vào rồi gõ một dòng docker run dài ngoằng. Nghe thì nhanh, nhưng đa số NAS Synology đang tắt SSH mặc định — bật lên là mở thêm một cửa ra ngoài, kèm một thứ phải nhớ tắt lại sau này.
Cũng có cách "30 giây" khá nổi tiếng của mariushosting: dán nguyên lệnh docker run vào ô script của Task Scheduler rồi chạy 1 lần. Nhanh thật, nhưng bản chất vẫn là CLI, chỉ đổi chỗ dán. Gõ sai một dấu ngoặc, thiếu một khoảng trắng là script chạy ẩn, im re không báo lỗi gì cả — đến lúc mở trình duyệt thấy trắng xóa mới ngồi đoán xem sai ở đâu.
Bài này đi theo hướng ngược lại: làm 100% qua Container Manager — tải image, tạo container, gắn volume, mở port, tất cả bằng click chuột. Không SSH, không gõ lệnh, không YAML. Chậm hơn dòng lệnh đúng 30 giây, nhưng bạn nhìn thấy từng bước mình đang làm, sai đâu sửa đó ngay trên giao diện, không phải đoán mò trong bóng tối.
| Cách cài | Cần SSH | Độ khó | Dễ debug |
| ----------------------------------- | ---------------------------------- | ------------- | -------------- |
| Container Manager (GUI) | Không | Dễ | Cao |
| docker run qua SSH | Có | Trung bình | Trung bình |
| Task Scheduler dán lệnh | Không cần bật SSH nhưng vẫn gõ CLI | Trung bình | Thấp (chạy ẩn) |
| Container Manager Project (compose) | Không | Cần biết YAML | Cao | Yêu cầu trước khi cài
- NAS chạy DSM 7.2 trở lên, đã cài package Container Manager (bản DSM cũ hơn gọi là package "Docker" — quy trình tương tự, chỉ khác tên).
- Có sẵn một volume trống để lưu dữ liệu, ví dụ
/volume1. - Biết địa chỉ IP của NAS trong mạng LAN (Control Panel → Info Center, hoặc DSM desktop góc trên).
Nếu chưa cài Container Manager: vào Package Center, gõ "Container Manager" vào ô tìm kiếm, bấm Install. Xong bước này coi như đã xong 80% việc cần làm.
Các bước cài Portainer trên Synology
1. Tạo thư mục lưu dữ liệu
Mở File Station, vào docker (tạo mới nếu chưa có), tạo thêm thư mục con portainer. Đường dẫn cuối cùng sẽ là /volume1/docker/portainer. Dùng chữ thường hết cho lành — Synology thỉnh thoảng khó chịu với tên thư mục viết hoa khi mount vào container.
2. Tải image portainer/portainer-ce
Mở Container Manager → tab Registry → gõ portainer/portainer-ce vào ô tìm kiếm → chọn đúng image chính thức (kiểm tra tên tác giả là portainer.io) → bấm Download. Ở hộp thoại chọn tag, chọn lts — bản long-term support, ổn định, ít drama hơn latest. Đợi tải xong, thường vài chục MB đến hơn trăm MB tùy version.
3. Tạo container
Qua tab Container → Create → chọn image portainer/portainer-ce vừa tải. Đặt tên container là portainer, và nhớ bật Enable auto-restart — tương đương flag --restart=always khi dùng CLI, để Portainer tự sống lại sau khi NAS reboot.
4. Advanced Settings — phần quan trọng nhất
Đây là chỗ 90% người mới toanh vấp phải lần đầu, nên đọc chậm lại một nhịp:
Tab Volume, thêm hai mapping:
/var/run/docker.sock(host) →/var/run/docker.sock(container) — chọn kiểu File, không phải Folder. Đây là đường ống để Portainer nói chuyện với Docker engine của NAS, thiếu nó Portainer chạy lên chỉ là cái vỏ rỗng, đẹp mà vô dụng./volume1/docker/portainer(host) →/data(container) — chọn kiểu Folder, nơi lưu toàn bộ config, user, endpoint của Portainer.
Tab Port Settings: map local port 9443 → container port 9443, giao thức TCP. Đây là port HTTPS chính thức theo docs.portainer.io, dùng chứng chỉ self-signed mặc định. Port 9000 (HTTP) là cách một số bài cũ vẫn dùng, nhưng giờ Portainer khuyến nghị 9443. Nếu định dùng Edge agent (kết nối NAS khác từ xa qua Portainer), thêm luôn port 8000 → 8000 — không dùng Edge thì bỏ qua, không ảnh hưởng gì.
Bấm Apply → Next → Done. Container Portainer bắt đầu chạy.
Kiểm tra và tạo tài khoản admin
Mở trình duyệt, gõ https://<IP-NAS>:9443. Trình duyệt sẽ cảnh báo chứng chỉ không đáng tin — bình thường thôi, đó là chứng chỉ self-signed Portainer tự tạo. Bấm "Advanced" → "Proceed anyway" (tên nút tùy trình duyệt).
Portainer cho bạn một khoảng thời gian khá ngắn ngay sau khi container khởi động lần đầu để tạo tài khoản admin, mật khẩu bắt buộc tối thiểu 12 ký tự. Tạo xong, chọn environment local — Portainer tự nhận diện Docker engine của NAS qua docker.sock đã mount ở bước trên, không cần cấu hình thêm gì nữa.
Muốn thấy Portainer hơn hẳn Container Manager gốc ở chỗ nào, thử vào Containers → Add container hoặc Stacks → Add stack để deploy thử một container bằng cách dán đoạn compose vào. Không cần rời khỏi trình duyệt, không phải lật qua lật lại nhiều tab như bên Container Manager.
Lỗi thường gặp khi cài Portainer
- Không thấy file
/var/run/docker.sockkhi thêm volume: nhớ chọn kiểu File, không phải Folder — chọn nhầm Folder là bạn đang cố mount cả một thư mục vào chỗ chỉ cần một file socket. Nếu File Station không hiện file ẩn, bật "Show hidden files" hoặc gõ thẳng đường dẫn vào ô nhập tay. - Lỡ mất thời gian tạo tài khoản admin ban đầu: Portainer báo lỗi kiểu "instance timed out". Không có cách sửa nhanh — phải xóa container, xóa sạch dữ liệu trong
/volume1/docker/portainer, rồi làm lại từ bước tạo container. Đau nhưng nhanh, chỉ mất vài phút. - Quên bật auto-restart: NAS reboot xong Portainer không tự chạy lại, phải vào Container Manager bật tay. Tick sẵn ô đó ngay từ lúc tạo container cho đỡ mất công về sau.
- Không truy cập được 9443 từ máy khác trong LAN: Firewall Synology (Control Panel → Security → Firewall) đang chặn port này. Vào thêm rule cho phép port 9443 — đơn giản nhưng hay bị bỏ sót vì Firewall Synology mặc định không tự hiện port lạ cho bạn thấy.
- Trùng port 9443 với dịch vụ khác đang chạy trên NAS: đổi local port map sang số khác (ví dụ 9444) ngay trong Advanced Settings của container Portainer. Đừng đi sửa port bên trong image, vô ích, vì Portainer luôn lắng nghe ở 9443 trong container.
Bảo mật và bảo trì
Container Portainer mount trực tiếp docker.sock, nghĩa là nó có quyền ngang root với toàn bộ Docker engine trên NAS — điều khiển được, xóa được, thấy được mọi container khác. Chỉ dùng đúng image chính thức portainer/portainer-ce từ Docker Hub, đừng vì tò mò mà kéo image lạ không rõ nguồn gốc về chạy cạnh nó.
Đừng port-forward 9443 thẳng ra Internet. Cần truy cập Portainer từ ngoài mạng LAN thì dùng reverse proxy kèm domain riêng, HTTPS, và bật 2FA trong Portainer nếu có expose ra ngoài — mở thẳng port ra WAN chẳng khác nào treo biển mời gọi quét cổng, sớm muộn cũng có người gõ cửa.
Backup định kỳ thư mục /volume1/docker/portainer. Đó là nơi lưu toàn bộ user, config, endpoint của Portainer — mất là phải cấu hình lại từ đầu, chẳng có gì để khôi phục cả. Và nhớ cập nhật DSM cùng Container Manager lên bản vá bảo mật mới nhất — việc ai cũng biết nhưng hay trì hoãn, đến lúc dính lỗ hổng mới sực nhớ ra nút Update vẫn nằm im trong Control Panel bao lâu nay.



No comments yet