Plantre Plantre
首页
后端
技术
硬件
  • 前端文章

    • HTML
    • CSS
    • JavaScript
  • 技术

    • 技术文档
    • GitHub技巧
    • Nodejs
    • 博客搭建
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

plantre

一个后端开发者
首页
后端
技术
硬件
  • 前端文章

    • HTML
    • CSS
    • JavaScript
  • 技术

    • 技术文档
    • GitHub技巧
    • Nodejs
    • 博客搭建
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 虚拟化

    • 系统虚拟化

    • 容器虚拟化

      • docker命令
      • docker安装portainer图形化界面
      • var-run-docker.sock是什么
      • docker-compose.yml配置文件最全选项详解
      • Volume的类型和生命周期
      • docker更换镜像源
      • docker安装prometheus监控
      • docker安装node_exporter
      • docker安装cadvisor
      • micrometer是Exporter吗,有哪些常用的Exporter
      • docker安装gitea
      • docker安装nacos
      • docker安装anki-sync-server
    • 网络虚拟化

    • 存储虚拟化

    • 应用虚拟化

  • Git

  • 可视化

  • Linux

  • 远程串流等

  • SWF

  • 网络

  • 网站收藏
  • 技术
  • 虚拟化
  • 容器虚拟化
plantre
2025-05-13

Volume的类型和生命周期

Docker 卷主要有以下四种类型,每种类型的生命周期及特点如下:


1. 匿名卷(Anonymous Volume)

• 定义:由 Docker 自动创建,名称是随机哈希值(如 d983c9f3d...),通常通过 VOLUME 指令或 -v 指定容器内路径隐式创建。

• 生命周期:

• 默认:容器删除后,匿名卷仍保留在宿主机上,成为“孤儿卷”,需手动清理(如 docker volume prune)。

• 自动删除:若启动容器时添加 --rm 参数,容器退出时匿名卷会被自动删除。

• 适用场景:临时存储(如测试环境、缓存)或无需显式管理的场景。


2. 命名卷(Named Volume)

• 定义:用户显式创建并命名的卷(如 docker volume create my-vol),可通过名称直接引用。

• 生命周期:

• 独立于容器:即使容器被删除,命名卷仍持久存在,需手动删除(docker volume rm)。

• 支持跨容器共享:多个容器可挂载同一命名卷,实现数据共享。

• 适用场景:生产环境中的持久化数据(如数据库文件、配置文件)。


3. 绑定挂载(Bind Mount)

• 定义:直接将宿主机的目录或文件挂载到容器中(如 -v /host/path:/container/path),数据存储在用户指定的宿主机路径。

• 生命周期:

• 与宿主机目录同步:数据完全由宿主机管理,容器删除不影响宿主机目录的内容。

• 无自动清理机制:需用户手动管理宿主机目录的备份或删除。

• 适用场景:开发环境(代码热更新)、直接操作宿主机文件。


4. 临时文件系统(tmpfs Mount)

• 定义:将数据存储在容器的内存中,而非磁盘(如 --tmpfs /app/cache),性能最佳但无持久性。

• 生命周期:

• 临时性:容器停止时数据立即丢失,重启后无法恢复。

• 适用场景:缓存、临时会话数据等无需持久化的场景。


生命周期对比

卷类型 创建方式 数据存储位置 生命周期管理 持久性
匿名卷 Docker自动生成 Docker管理目录 默认保留,需手动或 --rm 中(依赖手动清理)
命名卷 docker volume create Docker管理目录 手动删除 高
绑定挂载 指定宿主机路径 用户指定宿主机目录 完全用户管理 高(依赖宿主机)
tmpfs卷 --tmpfs 或 docker run 容器内存 容器停止即销毁 无

最佳实践建议

  1. 命名卷优先:生产环境推荐使用命名卷,便于管理和备份。
  2. 绑定挂载用于开发:开发时绑定宿主机目录,方便实时修改代码。
  3. 谨慎使用匿名卷:结合 --rm 参数避免孤儿卷积累。
  4. tmpfs优化性能:适用于高频临时数据(如缓存)。

如需更详细的命令示例或高级管理技巧,可参考相关文档。

编辑 (opens new window)
上次更新: 2025/06/10, 09:18:05
docker-compose.yml配置文件最全选项详解
docker更换镜像源

← docker-compose.yml配置文件最全选项详解 docker更换镜像源→

最近更新
01
集成loki
07-04
02
TCP的ESTABLISHED是什么意思
06-24
03
安装1panel
06-24
更多文章>
Theme by Vdoing | Copyright © 2025-2025 plantre | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式