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 /

📚 参考资源


相关笔记