Goer-Docker系列1-容器数据持久化
容器的数据默认存储在其可写层中,而容器的生命周期是「临时的」——当容器被删除时,可写层的数据会被彻底清除。为了避免数据丢失(如数据库数据、用户上传文件等),需要通过数据持久化技术将容器内的数据存储到宿主机或外部存储中。
Docker 提供了三种主要的数据持久化方式,核心差异在于「数据存储的位置」和「管理方式」,适用于不同场景:
一、Volumes(数据卷,推荐生产环境)
Volumes 是 Docker 引擎管理的宿主机文件系统目录(默认路径为 /var/lib/docker/volumes/),完全由 Docker 控制,与容器的生命周期解耦(容器删除后,卷仍可保留)。
核心特点:
- 由 Docker 自动创建和管理,无需手动指定宿主机路径,避免依赖宿主机目录结构;
- 支持在多个容器间共享数据;
- 可通过 Docker 命令(
docker volume ...)直接管理(创建、删除、备份); - 适合存储需要长期保留的数据(如数据库数据、应用配置)。
1. 基本操作(管理卷)
# 创建一个具名卷(推荐,便于识别)
docker volume create mysql-data# 查看所有卷
docker volume ls# 查看卷的详细信息(包括宿主机实际路径)
docker volume inspect mysql-data