1、docker volume create 简介
docker volume create
命令用于创建一个新的Docker卷。Docker卷是用于在Docker容器之间持久化存储数据的一种机制。可以使用docker volume create
命令来创建一个空的卷,然后将其挂载到容器中。
创建一个新卷,容器可以在其中消费和存储数据。如果未指定名称,Docker将生成一个随机名称。
参考文档:https://docs.docker.com/engine/reference/commandline/volume_create/
2、docker volume create 语法
docker volume create [OPTIONS] [VOLUME]
3、docker volume create 命令
1)创建一个卷并配置容器使用它
docker volume create hello hello docker run -d -v hello:/world busybox ls /world
挂载点在容器的/world目录内创建。Docker不支持容器内挂载点使用相对路径。
多个容器可以在同一时间段内使用相同的卷。这在两个容器需要访问共享数据时非常有用。例如,一个容器写入数据,另一个容器读取数据。
卷名称在驱动程序之间必须是唯一的。这意味着您不能在两个不同的驱动程序中使用相同的卷名称。如果尝试这样做,Docker会返回一个错误。
A volume named "hello" already exists with the "some-other" driver. Choose a different volume name.
如果指定的卷名称在当前驱动程序中已经被使用,Docker会认为您想要重用现有的卷,并且不会返回错误。
1)驱动程序特定选项(-o, --opt)
某些卷驱动程序可能需要选项来自定义卷的创建。使用-o或--opt标志传递驱动程序选项:
docker volume create --driver fake \ --opt tardis=blue \ --opt timey=wimey \ foo
这些选项将直接传递给卷驱动程序。不同的卷驱动程序的选项可能会执行不同的操作(或者根本不执行任何操作)。
Windows上内置的本地驱动程序不支持任何选项。
Linux上内置的本地驱动程序接受类似于Linux挂载命令的选项。可以通过多次传递--opt标志来提供多个选项。某些挂载选项(如o选项)可以使用逗号分隔的选项列表。可用挂载选项的完整列表可以在此处找到。
例如,以下命令将创建一个名为foo的tmpfs卷,大小为100兆字节,uid为1000:
docker volume create --driver local \ --opt type=tmpfs \ --opt device=tmpfs \ --opt o=size=100m,uid=1000 \ foo
另一个使用btrfs的例子:
docker volume create --driver local \ --opt type=btrfs \ --opt device=/dev/sda2 \ foo
另一个使用nfs从192.168.1.1以rw模式挂载/path/to/dir的例子:
docker volume create --driver local \ --opt type=nfs \ --opt o=addr=192.168.1.1,rw \ --opt device=:/path/to/dir \ foo
4、命令选项
选项 | 默认值 | 描述 |
--availability | active | API 1.42+Swarm 集群卷的可用性(active、pause、drain) |
--driver, -d | local | 指定卷驱动程序的名称 |
--group | 无 | API 1.42+Swarm 集群卷的分组(集群卷) |
--label | 无 | 为卷设置元数据 |
--limit-bytes | 无 | API 1.42+Swarm 集群卷的最小大小(以字节为单位) |
--opt, -o | 无 | 设置驱动程序特定选项 |
--required-bytes | 无 | API 1.42+Swarm 集群卷的最大大小(以字节为单位) |
--scope | single | API 1.42+Swarm 集群卷的访问范围(single、multi) |
--secret | 无 | API 1.42+Swarm 集群卷的秘密 |
--sharing | none | API 1.42+Swarm 集群卷的访问共享方式(none、readonly、onewriter、all) |
--topology-preferred | 无 | API 1.42+Swarm 集群卷的首选拓扑结构 |
--topology-required | 无 | API 1.42+Swarm 集群卷必须从中访问的拓扑结构 |
--type | block | API 1.42+Swarm 集群卷的访问类型(mount、block) |