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/storage
direktori 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-alpine
Pastikan container status running
docker ps
Mount volume #
Selanjutnya install NFS Client agar dapat mount volume di NFS server
sudo apt install nfs-client -y
Lalu mount dengan perintah
sudo mount -v -t nfs4 ip-nfs-server:/ /mnt
Cek mounting dengan df
df -hT
Filesystem 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% /mnt
Multiple 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-alpine
Lalu coba mount pada sisi client
sudo mount -v ip-nfs-server:/ /mnt/one
sudo mount -v ip-nfs-server:/another /mnt/two
Jika 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
fi
Ubah SHARED_DIRECTORY_2
menjadi SHARED_DIRECTORY_3
dan seterusnya