Docker数据卷挂载命令volume(-v)与mount的使用总结

以下是关于docker数据卷挂载的方式和对比学习笔记:

使用 docker run -v 命令可以同时用于创建 volume mount(卷挂载)和 bind mount(绑定挂载),具体取决于您如何指定源和目标路径。

1. 创建 volume mount:

docker run -v my-volume:/path/in/container my-image

这将创建一个 volume mount,其中 my-volume 是 Docker 卷的名称,将其挂载到容器内的 /path/in/container。

2. 创建 bind mount:

以下这两种方式都允许创建bind mount,可以选择其中一种方式,具体取决于个人的喜好。它们的功能是相同的,只是命令的格式稍有不同。

2.1 使用 docker run -v:

docker run -v /host/path:/container/path my-image

这将创建一个 bind mount,将宿主机上的 /host/path 目录绑定挂载到容器内的 /container/path 目录

2.2 使用 docker run --mount:

在Docker中,创建bind mount的方式不仅可以使用 docker run -v 命令,还可以使用 --mount 参数。以下是不同方式创建bind mount的示例:

docker run --mount type=bind,source=/host/path,target=/container/path my-image

这是使用 --mount 参数的方式,其中 type=bind 表示创建bind mount,source 是宿主机上的路径,target 是容器内的路径。

3. 创建bind mount和挂载volume的比较

对比项 bind mount volume
Source位置 用户指定 /var/lib/docker/volumes/
Source为空 覆盖dest为空 保留dest内容
Source非空 覆盖dest内容 覆盖dest内容
Source种类 文件或目录 只能是目录
可移植性 一般(自行维护) 强(docker托管)
宿主直接访问 容易(仅需chown) 受限(需登陆root用户)*
如果主机路径不存在 命令报错 自动创建

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注