Penerapan NFS Server banyak digunakan untuk backup data sehingga diperlukan server fisik dengan jumlah slot disk yang cukup banyak (NAS). Namun ada juga yang menggunakan NFS untuk keperluan selain backup seperti untuk penyimpanan file website yang dihubungkan dengan webserver agar memberikan ketersediaan tinggi (High availability).
Panduan kali ini adalah cara cepat setup NFS server di Docker dan untuk selanjutnya dapat Anda sesuaikan dengan topologi atau kebutuhan yang diperlukan.
Create directory #
mkdir -p /data/storagedirektori ini akan digunakan sebagai volume untuk SHARED_DIRECTORY.
Create container #
docker run -dit --privileged --restart unless-stopped \
-e SHARED_DIRECTORY=/data -v /data/storage:/data \
-p 2049:2049 dockerinusa/nfs-server-alpinePastikan container status running
docker psMount volume #
Selanjutnya install NFS Client agar dapat mount volume di NFS server
sudo apt install nfs-client -yLalu mount dengan perintah
sudo mount -v -t nfs4 ip-nfs-server:/ /mntCek mounting dengan df
df -hTFilesystem Type Size Used Avail Use% Mounted on
tmpfs tmpfs 97M 1.1M 96M 2% /run
/dev/vda1 ext4 7.6G 2.6G 5.1G 34% /
tmpfs tmpfs 484M 0 484M 0% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/vda15 vfat 105M 6.1M 99M 6% /boot/efi
tmpfs tmpfs 97M 4.0K 97M 1% /run/user/1000
192.168.5.1:/ nfs4 156G 28G 120G 19% /mntMultiple Shares #
docker run -d --name nfs --privileged \
-p 2049:2049 \
-v /some/where/fileshare:/nfsshare \
-v /some/where/else:/nfsshare/another \
-e SHARED_DIRECTORY=/nfsshare \
-e SHARED_DIRECTORY_2=/nfsshare/another \
dockerinusa/nfs-server-alpineLalu coba mount pada sisi client
sudo mount -v ip-nfs-server:/ /mnt/one
sudo mount -v ip-nfs-server:/another /mnt/twoJika ingin menambahkan lebih dari 2 volume. Edit /usr/bin/nfsd.sh dengan menambahkan konfig
if [ ! -z "${SHARED_DIRECTORY_2}" ]; then
echo "Writing SHARED_DIRECTORY_2 to /etc/exports file"
echo "{{SHARED_DIRECTORY_2}} {{PERMITTED}}({{READ_ONLY}},{{SYNC}},no_subtree_check,no_auth_nlm,insecure,no_root_squash)" >> /etc/exports
/bin/sed -i "s@{{SHARED_DIRECTORY_2}}@${SHARED_DIRECTORY_2}@g" /etc/exports
fiUbah SHARED_DIRECTORY_2 menjadi SHARED_DIRECTORY_3 dan seterusnya