- Usage: docker volume create [OPTIONS]
-
- Create a volume
-
- Options:
- -d, --driver string Specify volume driver name (default "local")
- --help Print usage
- --label value Set metadata for a volume (default [])
- --name string Specify volume name
- -o, --opt value Set driver specific options (default map[])
创建一个新的数据卷,这样容器就可以往里面存储数据了。如果–name没有指定,docker就生成一个随机的名称。创建一个数据卷之后就可以配置容器使用它了,例如:
- $ docker volume create --name hello
- hello
-
- $ docker run -d -v hello:/world busybox ls /world
数据卷hello挂载在容器的/world目录。docker不支持容器内的挂载点使用相对路径。
多个容器可以在相同时间段使用相同的数据卷。如果两个容器需要访问共享数据这个功能会非常有用。例如,一个容器写入数据另一个读取这个数据。
数据卷名称必须在所有驱动之间是唯一的。意味着在两个不同的驱动之间不能使用相同的数据卷名。如果尝试使用,docker将返回一个错误:
- A volume named "hello" already exists with the "some-other" driver. Choose a different volume name.
驱动特定的选项
一些数据卷驱动提供了一些选项来自定义数据卷的创建。使用-o或–opt标志传递这个驱动选项:
- $ docker volume create --driver fake --opt tardis=blue --opt timey=wimey
这些选项直接传递到数据卷驱动。内置的local Linux驱动接受的选项与linux mount命令类似。通过传递多次–opt标志来提供多个选项。完整的可用的mount选项在这里。
例如,下面创建了一个tmpfs数据卷,称为foo,大小为100M,uid为1000.
- $ docker volume create --driver local --opt type=tmpfs --opt device=tmpfs --opt o=size=100m,uid=1000 --name foo
使用btrfs的另一个示例:
- $ docker volume create --driver local --opt type=btrfs --opt device=/dev/sda2 --name foo
使用nfs从192.168.1.1挂载到/path/to/dir,模式为rw的示例:
- $ docker volume create --driver local --opt type=nfs --opt o=addr=192.168.1.1,rw --opt device=:/path/to/dir --name foo