Youtube Tutorial - 如何在 ubuntu 啟用 NFS Server
NFS (Network File System)
NFS 的優點是在 linux 上佈署簡單, 傳輸速度(相對 FTP)快.
NFS 的缺點就是加密的部份, 因為單純只是使用 IP 而已, 相對 FTP 來說比較不安全.
(但如果搭配內網以及防火牆應該會安全很多
在這邊我是使用 ubuntu 18.04,
安裝 NFS Server
sudo apt install nfs-kernel-server建立要分享的資料夾 ( NFS mount directory )
sudo mkdir -p /mnt/nfs_shared因為目標是讓 client 端可以訪問 shared directory, 所以移除資料夾權限以及 gropus
sudo chown -R nobody:nogroup /mnt/nfs_shared/接著再給它最大 777 權限,
如果不懂, 可參考之前的 chmod 介紹
sudo chmod 777 /mnt/nfs_shared/nfs 權限以及 ip 定義在 /etc/exports 中
sudo vim /etc/exports如果要設定很多 ip 就多寫幾行
/mnt/nfs_shared client_IP_1 (rw,sync,no_subtree_check)
/mnt/nfs_shared client_IP_2 (rw,sync,no_subtree_check)rw 設定讀寫權限.
ro 設定唯讀.
sync 資料同步寫入到記憶體與硬碟當中.
async 資料會先暫存於記憶體當中,而非直接寫入硬碟.
Export the NFS Share Directory
sudo exportfs -a
sudo systemctl restart nfs-kernel-server設定 Firewall
這部份建議要做, 安全一點
sudo ufw allow from client_IP to any port nfs確認防火牆狀態
sudo ufw enable
sudo ufw status安裝 NFS Client
sudo apt install nfs-common建立資料夾
sudo mkdir -p /mnt/nfs_client將 server 端的 nfs_shared 資料夾掛載
sudo mount server_IP:/mnt/nfs_shared /mnt/nfs_client如果可以在資料夾裡面讀寫資料就是成功了哦 😄
執行以下指令 sudo vim /etc/fstab
# <file system> <dir> <type> <options> <dump> <pass>
192.168.7.123:/mnt/nfs_shared /mnt/nfs_shared nfs defaults 0 0192.168.7.123:/mnt/nfs_shared 前面代表 server 的 ip, 後面為 server share 的路徑
/mnt/nfs_shared 本機要掛載的位置
如果開機還是沒有自動掛載, 請手動掛載 sudo mount /mnt/nfs_shared
要先卸除掛載, 才能刪除
sudo umount nfs_client
sudo rm -rf nfs_clientip addrifconfigdocker 也可以建立 NFS Volumes, 方法如下,
version: '3.5'
services:
nginx:
image: nginx
ports:
- "80:80"
volumes:
- "nfs-data:/data"
volumes:
nfs-data:
driver: local
driver_opts:
type: nfs
o: nfsvers=4,addr=ip,rw
device: ":/path/to/dir"docker 相關文章可參考 Docker 基本教學 - 從無到有 Docker-Beginners-Guide
