Docker for DevOps engineer 2 minute read

Hai semuanya di materi kali ini kita akan membahas tentang share data berbeda machine mengunakan NFS (Network File System)

Nah jadi sekarang kita memerlukan NFS Server, sebagai contoh disini saya udah sediakan VM (Virtual Machine) yang udah ter-install CentOS 8 dan ssh-server. Sekarang yang perlu kita lakukan adalah install NFS Server di vm pada ip (192.168.88.110) dengan menggunakan perintah seperti berikut:

Setelah kita install kita bisa check dengan perintah nfsstat -S maka outputnya seperti berikut:

[root@storage-nfs ~]# nfsstat -s
Server rpc stats:
calls      badcalls   badfmt     badauth    badclnt
0          0          0          0          0

[root@storage-nfs ~]# exportfs
## empty result

Setelah itu kita akan buat folder untuk menyimpan datanya kemudian kita export foldernya perintah berikut:

sudo mkdir -p /var/nfs-data/nginx-app && \
sudo chmod -R 777 /var/nfs-data/nginx-app/ && \
touch /var/nfs-data/nginx-app/.gitkeep

Kemudian kita edit file /etc/exports tambahkan config folder yang telah kita buat tadi seperti berikut:

/var/nfs-data/nginx-app *(rw,fsid=0,async,no_subtree_check,no_auth_nlm,insecure,no_root_squash)

Setelah itu kita restart service nfs-server dengan perintah seperti berikut:

sudo systemctl restart nfs-server.service

Sekarang kita coba test dengan perintah exportfs maka hasilnya seperti berikut:

[root@storage-nfs ~]# exportfs
/var/nfs-data/nginx-app
                <world>

Ok sekarang kita bisa check dari client apakah NFS Server udah bisa di access dengan perintah seperti berikut

[root@docker-vm ~]# showmount -e 192.168.88.110
Export list for 192.168.88.110:
/var/nfs-data/nginx-app 192.168.88.0

Ok setup untuk NFS server sudah selesai, sekarang kita buat compose file untuk melakukan conneksi ke nfs server seperti berikut:

Jika di jalankan maka hasilnya seperti berikut:

 docker  docker-compose -f .\09-docker-compose\volume\nfs\docker-compose.yaml -p share-nfs up
 -d
Creating network "share-nfs_default" with the default driver
Creating volume "share-nfs_nfs-server" with local driver
Creating share-nfs_nginx_1 ... done

 docker  docker-compose -f .\09-docker-compose\volume\nfs\docker-compose.yaml -p share-nfs ps

      Name                     Command               State                Ports
---------------------------------------------------------------------------------------------
share-nfs_nginx_1   /docker-entrypoint.sh ngin ...   Up      0.0.0.0:80->80/tcp,:::80->80/tcp

 docker  curl localhost

StatusCode        : 200
StatusDescription : OK
Content           : <html>
                        <head>
                                <title>Volume from NFS Server</title>
                        </head>
                        <body><h3>it''s Works!</h3></body>
                    </html>

RawContent        : HTTP/1.1 200 OK
                    Connection: keep-alive
                    Accept-Ranges: bytes
                    Content-Length: 111
                    Content-Type: text/html
                    Date: Sun, 15 Aug 2021 11:04:14 GMT
Headers           : {[Connection, keep-alive], [Accept-Ranges, bytes], [Content-Length,
                    111], [Content-Type, text/html]...}
ParsedHtml        : System.__ComObject
RawContentLength  : 111