Creating a Bind Mount with `docker volume`
Creating a bind mount (a volume that has an explicitly declared directory underpinning it) is easy when using docker run:
docker run -v /var/app/data:/data:rw my-container
Now, anytime you write to the container's data
directory, you will be writing to /var/app/data
as well.
You can do the same thing with the --mount
flag.
docker run --mount type=bind,source=/var/app/data,target=/data my-container
Sometimes though you might want to create a bind mount that is independent of a container. This is less than clear but Cody Craven figured it out.
docker volume create \
--driver local \
-o o=bind \
-o type=none \
-o device=/var/app/data \
example-volume
The key value pairs passed with -o
are not well documented. The man page for docker-create-volume
says:
The built-in local driver on Linux accepts options similar to the linux mount command
The man page for mount
will have options similiar to the above, but structred differently.