Docker 存储详解
Docker 存储架构、存储驱动类型和数据管理
📋 目录
存储驱动类型
常见存储驱动
- overlay2:推荐使用,性能好
- aufs:旧版本使用
- devicemapper:CentOS/RHEL 使用
- btrfs:Btrfs 文件系统
- zfs:ZFS 文件系统
查看存储驱动
# 查看存储驱动
docker info | grep "Storage Driver"数据卷(Volume)
创建数据卷
# 创建数据卷
docker volume create my-volume
# 创建数据卷并指定驱动
docker volume create --driver local my-volume使用数据卷
# 使用数据卷
docker run -d -v my-volume:/data nginx:latest
# 使用匿名数据卷
docker run -d -v /data nginx:latest管理数据卷
# 列出所有数据卷
docker volume ls
# 查看数据卷详细信息
docker volume inspect my-volume
# 删除数据卷
docker volume rm my-volume
# 删除所有未使用的数据卷
docker volume prune绑定挂载(Bind Mount)
使用绑定挂载
# 绑定挂载目录
docker run -d -v /host/path:/container/path nginx:latest
# 只读挂载
docker run -d -v /host/path:/container/path:ro nginx:latest挂载选项
rw:读写(默认)ro:只读z:共享 SELinux 标签Z:私有 SELinux 标签
tmpfs 挂载
使用 tmpfs
# 使用 tmpfs
docker run -d --tmpfs /tmp nginx:latest
# 指定 tmpfs 大小
docker run -d --tmpfs /tmp:rw,noexec,nosuid,size=100m nginx:latest存储驱动选择
选择建议
- overlay2:推荐使用
- aufs:旧系统使用
- devicemapper:CentOS/RHEL
配置存储驱动
// /etc/docker/daemon.json
{
"storage-driver": "overlay2"
}数据备份与恢复
备份数据卷
# 备份数据卷
docker run --rm \
-v my-volume:/data \
-v $(pwd):/backup \
ubuntu:20.04 \
tar czf /backup/backup.tar.gz /data恢复数据卷
# 恢复数据卷
docker run --rm \
-v my-volume:/data \
-v $(pwd):/backup \
ubuntu:20.04 \
tar xzf /backup/backup.tar.gz -C /