【Docker】存储卷

【简介】

宿主机的某一目录与容器中的某一目录建立的一种绑定关系,这就是**"存储卷"**
它有三个特性
1.它可以绕过联合文件系统, 直接作用于宿主机的目录
2.容器和宿主机的这一绑定关系指向了同一目录, 因此两个目录之间的数据是同步的,宿主机和容器都能读到
3.容器的销毁并不会销毁存储卷中的数据

【存储卷分类】

目前 Docker 提供了三种方式将数据从宿主机挂载到容器中

【 volume: docker 管理卷**】**

默认映射到宿主机的**/var/lib/docker/volumes**目录下,只需要指定容器内挂载路径,容器引擎 daemon 会在宿主机自行创建对应的目录(由docker来管理)

这种方式让用户使用的很省心,但缺陷是用户无法指定宿主机目录,因此可用于临时存储

【 bind mount: 绑定数据卷**】**

宿主机和容器内的绑定路径都需要人工手动指定
这种方式可以精准地控制数据的存储, 因此实际运用中这种存储卷的使用十分广泛

【 tmpfs mount: 临时数据卷**】**

它被绑定与宿主机内存中,一旦容器停止运行, tmpfs mounts就会被移除,数据就会丢失
一般用于高性能的临时数据存储。

【创建卷】

存储卷可以通过命令方式创建,也可以在创建容器的时候通过 -v 和 --mount 指定

【方式一:命令创建】

【创建存储卷】

语法 docker volume create OPTIONS VOLUME

未指定名称, 创建出来的就是 匿名卷

指定名称则创建出来的是命名卷

○ -d, --driver**:**指定驱动,默认是 local
○ --label : 指定元数据

【查看卷详细信息】

语法docker volume inspect OPTIONS VOLUME VOLUME...

○ -f : 指定相应个格式,如json

【列出卷】

语法docker volume ls OPTIONS

○ --format : 指定相应格式,如 json,table
○ --filter,-f: 过滤
○ -q: 仅显示名称

【删除卷(需要对应容器不使用)】

语法 docker volume rm OPTIONS VOLUME VOLUME...

○ -f,--force: 强制删除

【删除所有不使用的本地匿名卷】

语法 docker volume prune OPTIONS
○ --filter: 过滤
○ -f, --force : 不提示是否删除

【方式二:通过 -v 和 --mount 指定】

【-v 参数】

语法 docker run -v name:directory:options......
○ 第一个参数 name :卷名称(如果本地没有, 将自动创建)(如果name指定为宿主机目录, 则会创建绑定数据卷, 而不是docker管理卷)
○ 第二个参数 directory :卷映射到容器内的目录
○ 第三个参数 options :选项,如 ro 表示 readonly

【--mount 参数】

语法 --mount '<key>=<value>,<key>=<value>'
○ type : 类型表示 volume , bind,or tmpfs(表明创建的是三种存储卷中的哪一种)
○ source , src:对于命名卷,这是卷的名称。对于匿名卷,省略此字段。{如果type
指定为bind, 同时src指定为宿主机目录, 则会创建绑定数据卷, 而不是docker管理卷)
○ destination , dst,target :文件或目录挂载在容器中的路径
○ ro,readonly: 只读方式挂载

相关推荐
虎头金猫5 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS5 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
AI职业加油站5 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
此冬歌咏5 天前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
玉&心5 天前
通过Arthas在线诊断K8S中的内存及JVM等使用情况
docker·k8s·arthas
xing-xing5 天前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
-梅5 天前
linux(8) 软硬链接
linux·运维·服务器
赵文宇(温玉)5 天前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
guo_wen_qiang5 天前
上传本地镜像到harbor中
docker·容器·持续部署
张洛闻Eren5 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github