There is is very limited information regarding create volume with options \"https://docs.docker.com/engine/reference/commandline/volume_create/ \".
I just want to cr
This is actually possible using dockers local
volume driver. This driver accepts options similar to the linux mount options. Check out this excellent answer.
You were close with your attempt. You need to specify a --opt device=
as well as a --opt type=
option. This will essentially mount a block device on your host into your docker container as a volume. The type
option specifies the filesystem type to use. The device
option requires you to specify one of the block devices on your host - /dev/sda2
for example. You can see a complete list by running lsblk
.
However, it would be a bad idea to map existing drives (unless they are unused). So you will need to create a new block device (using lvm
or equivalent), or for testing you can use volatile storage (tmpfs), as you have tried.
Docker volumes have "drivers" attached to them. The default driver is one called "local" and all it does is creates a directory in /var/lib/docker
and mounts it to the container. There's no option to specify (or limit) the volume's size.
I solved issue for limiting space on docker volumes (by binding dir with -v) using xfs_quota
Location where I needed to store data is a XFS volume mounted with prjquota option
#~ mount
/dev/mapper/centos_ssp--forfiter--07-home on /home type xfs (rw,[..],**prjquota**)
I think that kernel must support it (rootflags=pquota kernel options)
Example from above link:
Enabling project quota on an XFS filesystem (restrict files in log file directories to only using 1 gigabyte of space).
# mount -o prjquota /dev/xvm/var /var
# echo 42:/var/log >> /etc/projects
# echo logfiles:42 >> /etc/projid
# xfs_quota -x -c 'project -s logfiles' /var
# xfs_quota -x -c 'limit -p bhard=1g logfiles' /var
There is also a plugin for docker cirocosta/xfsvol