docker容器几种持久化方式
命名卷
1 | services: |
| 参数 | 说明 |
|---|---|
| volumes | 块声明命名卷名称(如web_data) |
| driver | 指定存储驱动(默认local,支持nfs,cifs等) |
| driver_opts | (如 NFS 服务器地址、挂载选项) |
| 特点 | 持久性强:数据独立于容器生命周期,删除容器后仍保留 易管理:通过名称直接操作(备份迁移) 跨容器共享:多个服务可共同挂载 驱动扩展性:支持远程存储(NFS)实现跨主机共享 默认路径:存储路径为/var/lib/docker/volumes(docker volume ls可以查看) |
匿名卷
1 | services: |
| 参数 | 说明 |
|---|---|
| volumes | 无需声明,自动生成随机名称卷 |
| 特点 | 数据持久化:容器删除后卷仍存在 管理困难:随机名称难追踪,需docker volume ls查找 易留垃圾卷:容器重构时会生成新的匿名卷。旧数据存在还不被使用 |
绑定挂载
1 | services: |
| 参数 | 说明 |
|---|---|
| 宿主机路径格式 | -v 宿主机目录:容器目录[:权限](如 :ro 表示只读) |
| 支持相对路径 | 如 ./data 和绝对路径 |
| 特点 | 开发友好:实时同步代码或文件修改,无需重建镜像 数据访问:宿主机可直接文件 依赖目录结构:路径不兼容跨环境迁移(win/linux) |
临时内存卷(tmpfs)
1 | services: |
| 参数 | 说明 |
|---|---|
| tmpfs | 块指定容器内目录,数据仅存于宿主机内存 |
| 特点 | 读写高效:内存速度远超磁盘,适合高频临时数据 数据安全:容器停止后自动清除 容量限制:受宿主机内存大小限制 |
对比总结
| 方式 | 持久性 | 管理复杂度 | 性能 | 场景 |
|---|---|---|---|---|
| 命名卷 | 高 | 低 | 中 | 生产环境、多容器共享 |
| 匿名卷 | 中 | 高 | 中 | 临时测试 |
| 绑定挂载 | 高 | 低 | 中 | 开发调试、配置文件挂载 |
| tmpfs | 无 | 低 | 高 | 缓存、敏感临时数据 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 liujxu!











