Linux命令 Docker volume


原文链接: Linux命令 Docker volume

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
`