Want to take your software engineering career to the next level? Join the mailing list for career tips & advice Click here


Dockerized NFS server - NFS server as a docker container

Subscribe to updates I use dockerized_nfs_server

Statistics on dockerized_nfs_server

Number of watchers on Github 66
Number of open issues 1
Average time to close an issue 22 days
Main language Shell
Average time to merge a PR 1 day
Open pull requests 1+
Closed pull requests 0+
Last commit over 3 years ago
Repo Created over 4 years ago
Repo Last Updated over 2 years ago
Size 10 KB
Organization / Authorerezhorev
Page Updated
Do you use dockerized_nfs_server? Leave a review!
View dockerized_nfs_server activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Software engineers: It's time to get promoted. Starting NOW! Subscribe to my mailing list and I will equip you with tools, tips and actionable advice to grow in your career.
Evaluating dockerized_nfs_server for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

Dockerized NFS Server

Table of Contents


Get docker !

Before you start

  • This was originally created for the following purposes: development, testing and playground, as i develop locally on my pc without the need to have a real nfs server while on train or plane and without dirtying my pc with non-essential packages. I haven't tested it performance-wise nor using it in production.
  • This nfs server is currently not secured and using docker privileged flag in order to allow mount NFS filesystem, export it as docker volume (also for use by other containers) and overcome security modules limitations (e.g. 'selinux', 'appArmor'..etc).
    It can be run in more secured mode, if you'll handle those limitations by yourself and then start server by just running:
    docker run -d --name mynfs --cap-add=SYS_ADMIN erezhorev/dockerized_nfs_server
    for example, the following command will work on ubuntu overriding appArmor's docker policy:
    docker run -d --name mynfs --cap-add=SYS_ADMIN --security-opt apparmor:unconfined erezhorev/dockerized_nfs_server.

Start server

Activate the server by running the script start.sh.
For your convenience, it can also be sourced (e.g. source start.sh) which will set the environment variable MYNFSIP with the server's ip.

Behind stage it will automatically pull the docker image from Docker hub and start the nfs server container named 'mynfs' with the default export point: /exports.
(Docker internal run command: docker run -d --name mynfs --privileged erezhorev/dockerized_nfs_server)

Set your own exports

Optional arguments are allowed and transformed to export points with the default export (/exports) as their root base path.

  • Legal arguments form:
    start.sh share1 /share2 /some/share3 some/more/share4.

  • Arguments are allowed to include preceding Slash-'/' but its just the same as without it, each given argument transforms to an active export point under /exports.
    example: share1 /share2 -> /exports/share1 /exports/share2

Stop server

Run: stop.sh (or docker stop mynfs ; docker rm mynfs).
Note it also removes the server container with all its data!
To stop and preserve data, just run docker stop mynfs instead.

Troubleshoot & Debug

Server's status

Run status.sh as it includes the following info:
export points, server's stdout and running processes.

Test mount

Run: mount -v -t nfs -o proto=tcp,port=2049 [nfs server ip]:/exports/share1 /mnt/target_dir

Get inside container's shell

Run: docker exec -ti mynfs bash

And then, for example, you may run netstat -tl to see if nfs is there.

Make sure native host kernel support nfs

Run: lsmod | grep nfsd to see if the kernel module is there.

The nfs service of the docker container relies on the kernel of the native host to provide the kernel-level nfs support. If your nfs service is not up correctly, please make sure your native kernel does support nfs service.

General Info

  • Based on ubuntu nfs-kernel-server.
  • Current export point options are hard coded and consist of the following: rw,sync,insecure,no_subtree_check,no_root_squash
  • Docker hub reference
dockerized_nfs_server open pull requests (View All Pulls)
  • Added Host Security Options via ENV file
dockerized_nfs_server list of languages used
Other projects in Shell