Cách tạo ổ đĩa mạng Samba (SMB Server) trên Docker sử dụng Portainer
OK, sau khi cài xong linux armbian, anh chị em sẽ cần chỗ để lưu trữ dữ liệu (phim, nhạc, ảnh v...v...). Và tất nhiên sẽ muốn share dữ liệu này cho các đồng môn trong nhà. Mô hình này giang hồ gọi là NAS (Network Attached Storage) - hay ổ đĩa mạng.
Tuy nhiên khi cắm usb / ổ đĩa vào linux cần phải làm một số thao tác màu mè khác, không như windows cắm phát nhận luôn. Vậy làm sao để armbian nhận được ổ đĩa khi cắm vào box? Ta làm như sau:
- SSH/login vào thiết bị. (Dùng kitty / putty)
- Chạy lệnh:
lsblk -f
- Tìm ổ đĩa muốn mount vào armbian box. Thông qua LABEL (sẽ hiện tên ổ) hoặc dung lượng ổ để xác định sau đó lưu mã UUID lại
Dùng WinSCP mở file etc/fstab => Đây là file linux lấy thông tin để tự động mount ổ đĩa vào hệ điều hành mỗi khi khởi động.
Thêm dòng mới vào cho mỗi ổ đĩa muốn mount vô armbian, ví dụ dưới đây tôi mount 2 ổ exFAT500gb và sg500gb vào đường dẫn /media/ten-o-dia :
# <file system> <mount point> <type> <options> <dump> <pass>
UUID=6DFE-FAC6 /media/exFAT500gb exfat rw,nofail,uid=1000,gid=1000,lazytime,strictatime 0 2
UUID=4F32C89C1FFE737D /media/sg500gb ntfs rw,nofail,uid=1000,gid=1000,lazytime,strictatime 0 2
*chi tiết ý nghĩa từng block code tham khảo ở đây
Có một số tips cho bà con như sau:
- Nếu xài SMB cho iPhone (iOS) / Mac OS thì nên format ổ dưới định dạng exFAT thì thiết bị nhà táo Apple mới đọc file được.
- Ổ bt dùng trên Windows thì thường là định dạng NTFS.
Sau khi thêm ổ cần mount vào armbian thì gõ lệnh: mount -a
hoặc restart đều được.
Bật WinSCP lên mở thử đường dẫn /media/ten-o-dia nếu vô được là đã mount thành công.
Bây giờ tiến hành cài Samba SMB lên Docker bằng Portainer:
Dùng project này để cài:
Tôi có tạo sẵn cái stack sau, bà con chỉ cần mở Portainer lên copy và nhét vào và chỉnh lại chút theo ý mình (chỉnh lại đường dẫn ổ đĩa ở 2 dòng /media/ten-o-dia và /samba/ten-o-dia):
name: samba
services:
samba:
image: crazymax/samba
container_name: samba
network_mode: host
volumes:
- "/docker_data/cmsamba/data:/data"
- "/media/exFAT500gb:/samba/exFAT500gb"
- "/media/sg500gb:/samba/sg500gb"
environment:
- "TZ=Asia/Ho_Chi_Minh"
- "SAMBA_LOG_LEVEL=0"
restart: always
Sau khi tạo stack xong, chọn Deploy the stack như hình là ok.
Lúc này SMB server sẽ khởi tạo và tạo ra file config trong /docker_data/cmsamba/data/config.yml => anh chị em dùng WinSCP mở file này lên chỉnh lại như sau.
Dòng password -> đặt password mới vào.
Mục share nếu có nhiều ổ đĩa thì copy block code - paste xuống dưới để thêm ổ.
auth:
- user: admin
group: admin
uid: 1000
gid: 1000
password: dat-password-vo-day
global:
- "force user = admin"
- "force group = admin"
share:
- name: exFAT500gb
path: /samba/exFAT500gb
browsable: yes
readonly: no
guestok: yes
validusers: admin
writelist: admin
veto: no
- name: sg500gb
path: /samba/sg500gb
browsable: yes
readonly: no
guestok: yes
validusers: admin
writelist: admin
veto: no
Sau khi chỉnh file config xong, mình restart container samba này là đã có thể sử dụng.
Phần dưới này hướng dẫn add ổ mạng vào máy tính, điện thoại thì anh chị em có thể xài app để nối vào.
Thêm ổ đĩa mạng trên Windows. Vào This PC gõ \\IP của armbian vào sẽ thấy danh sách ổ mạng trong LAN.
Chuột phải vô từng ổ chọn Map network drive...
Chọn tên ổ xong nhấn Finish