Docker命令行参考(32) – docker volume create创建数据卷

  1. Usage:  docker volume create [OPTIONS]
  2.  
  3. Create a volume
  4.  
  5. Options:
  6.   -d, --driver string   Specify volume driver name (default "local")
  7.       --help            Print usage
  8.       --label value     Set metadata for a volume (default [])
  9.       --name string     Specify volume name
  10.   -o, --opt value       Set driver specific options (default map[])

创建一个新的数据卷,这样容器就可以往里面存储数据了。如果–name没有指定,docker就生成一个随机的名称。创建一个数据卷之后就可以配置容器使用它了,例如:

  1. $ docker volume create --name hello
  2. hello
  3.  
  4. $ docker run -d -v hello:/world busybox ls /world

数据卷hello挂载在容器的/world目录。docker不支持容器内的挂载点使用相对路径。

多个容器可以在相同时间段使用相同的数据卷。如果两个容器需要访问共享数据这个功能会非常有用。例如,一个容器写入数据另一个读取这个数据。

数据卷名称必须在所有驱动之间是唯一的。意味着在两个不同的驱动之间不能使用相同的数据卷名。如果尝试使用,docker将返回一个错误:

  1. A volume named  "hello"  already exists with the "some-other" driver. Choose a different volume name.

驱动特定的选项

一些数据卷驱动提供了一些选项来自定义数据卷的创建。使用-o或–opt标志传递这个驱动选项:

  1. $ docker volume create --driver fake --opt tardis=blue --opt timey=wimey

这些选项直接传递到数据卷驱动。内置的local Linux驱动接受的选项与linux mount命令类似。通过传递多次–opt标志来提供多个选项。完整的可用的mount选项在这里。

例如,下面创建了一个tmpfs数据卷,称为foo,大小为100M,uid为1000.

  1. $ docker volume create --driver local --opt type=tmpfs --opt device=tmpfs --opt o=size=100m,uid=1000 --name foo

使用btrfs的另一个示例:

  1. $ docker volume create --driver local --opt type=btrfs --opt device=/dev/sda2 --name foo

使用nfs从192.168.1.1挂载到/path/to/dir,模式为rw的示例:

  1. $ docker volume create --driver local --opt type=nfs --opt o=addr=192.168.1.1,rw --opt device=:/path/to/dir --name foo
标签:Docker 发布于:2019-11-19 07:41:22