Cách tạo ổ đĩa mạng Samba (SMB Server) trên Docker sử dụng Portainer

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:

  1. SSH/login vào thiết bị. (Dùng kitty / putty)
  2. Chạy lệnh: lsblk -f
  3. 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 SMB lên Docker bằng Portainer:

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