Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍Docker CLI 中 docker volume create 常用命令。

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)

推荐文档

相关文档

大家感兴趣的内容

随机列表