Home Setup NFS Server With Docker
Post
Cancel

Setup NFS Server With Docker

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

1
mkdir -p /data/storage

direktori ini akan digunakan sebagai volume untuk SHARED_DIRECTORY.

Create container

1
2
3
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

1
docker ps

Mount volume

Selanjutnya install NFS Client agar dapat mount volume di NFS server

1
sudo apt install nfs-client -y

Lalu mount dengan perintah

1
sudo mount -v -t nfs4 ip-nfs-server:/ /mnt

Cek mounting dengan df

1
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

1
2
3
4
5
6
7
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

1
2
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

1
2
3
4
5
if [ ! -z "${SHARED_DIRECTORY_2}" ]; then
  echo "Writing SHARED_DIRECTORY_2 to /etc/exports file"
  echo " (,,no_subtree_check,no_auth_nlm,insecure,no_root_squash)" >> /etc/exports
  /bin/sed -i "s@@${SHARED_DIRECTORY_2}@g" /etc/exports
fi

Ubah SHARED_DIRECTORY_2 menjadi SHARED_DIRECTORY_3 dan seterusnya

This post is licensed under CC BY 4.0 by the author.