-
Notifications
You must be signed in to change notification settings - Fork 165
Description
Right now, all the data for a named volume is written to the base directory of the share. Taking nfs for example. I do have an NFS share /export on my nfshost. Then running this:
docker volume create -d nfs --name data1 -o share=nfshost:/export
docker volume create -d nfs --name data2 -o share=nfshost:/export
will create two different named volumes (data1, data2). The data for both volumes will be stored in the same shared folder though (/export). The result is, that changes in one named volume can overwrite the data for the other too. To resolve such possible name clashes with the current version, I would need to define two different NFS shares /export1 and /export2. With many named volumes, this leads to many shares and greater administrative effort.
Proposal:
I propose to change the meaning of the share folder to be the root of a volume set (as suggested by @eesprit here: #52). This would mean, that for each named volume a subdirectory with the same name as the volume is created and all data stored there. For my example, this would lead to the following folder structure:
/export
- /data1
- /data2
Thus, the files for both named volumes are separated and I only have to create one NFS share. The same logic should be applied for cifs and probably efs.
It would be useful to define a new option to enable / disable this feature. If the option was named create, than the subfolders will only be created when -o create=yes is set. With -o create=no, the current behaviour remains and all files are stored within the root folder of the share. To be backward compatible, the default value for the create option could be no.