Docker切换文件系统为VFS

一、介绍

Docker支持AUFS、Btrfs、Device Mapper、OverlayFS、VFS、ZFS六种不同的存储驱动。

1. AUFS

AUFS是一种常见的存储驱动程序,它也使用了Linux内核的AUFS文件系统。它的优点是支持所有的Linux发行版,可以在不同的容器之间共享文件系统,支持写时复制技术。但是,它的缺点是相对较慢,需要更多的CPU和内存资源。

它允许多个分层文件系统合并成一个单独的文件系统,从而提高了文件系统的效率。AUFS将Docker镜像分解为多个层次结构,这些层次结构包括读取/写入层、中间层和只读层。层次结构允许容器与宿主机隔离,同时实现高效资源共享。

2. OverlayFS

OverlayFS是Docker默认的存储驱动程序,它使用了Linux内核的OverlayFS文件系统。它的优点是快速、轻量级、可靠性高,支持写时复制(Copy-on-Write)技术,可以节省存储空间。但是,它的缺点是不支持所有的Linux发行版,需要在内核中启用OverlayFS模块。

2.1 Overlay2

Overlay2是从OverlayFS衍生出来的新一代存储驱动程序,它提供更多的性能和可扩展性。与旧版OverlayFS相比,overlay2的优势在于:具有更快的构建和读取速度;支持镜像分层;减少了磁盘空间占用。

3. Device Mapper

Device Mapper是一种基于LVM(Logical Volume Manager)的存储驱动程序,它可以将物理存储设备映射为逻辑卷。它的优点是支持快照和克隆,可以在容器之间共享存储卷。但是,它的缺点是相对较慢,需要更多的CPU和内存资源。

4. Btrfs

Btrfs是一种新型的文件系统,它支持快照、克隆、压缩等高级功能。它的优点是支持写时复制技术,可以节省存储空间,支持快照和克隆。但是,它的缺点是相对较慢,需要更多的CPU和内存资源。

5. VFS

VFS是虚拟文件系统,它允许将多个文件系统组合成一个统一的视图。在容器环境中,vfs被用于将容器的文件系统与其他容器和主机隔离开来,同时提供一个共享的文件系统,以便不同容器之间可以相互访问。在Docker中,VFS为Docker镜像和容器提供了一个高效且可移植的存储解决方案。通过使用VFS,Docker能够跨不同的操作系统和平台实现一致的文件系统接口,使得应用程序的移植和管理变得更加容易。总之,vfs是一种用于容器环境的虚拟文件系统技术,它提供了高效、可移植和隔离的文件系统视图,使得不同容器之间可以共享文件和数据。

6. ZFS

ZFS 文件系统是一个革命性的全新的文件系统,它从根本上改变了文件系统的管理方式,ZFS 完全抛弃了"卷管理",不再创建虚拟的卷,而是把所有设备集中到一个存储池中来进行管理,用"存储池"的概念来管理物理存储空间。过去,文件系统都是构建在物理设备之上的。为了管理这些物理设备,并为数据提供冗余,"卷管理"的概念提供了一个单设备的映像。而ZFS创建在虚拟的,被称为"zpools"的存储池之上。每个存储池由若干虚拟设备(virtual devices,vdevs)组成。这些虚拟设备可以是原始磁盘,也可能是一个RAID1镜像设备,或是非标准RAID等级的多磁盘组。于是zpool上的文件系统可以使用这些虚拟设备的总存储容量。

总的来说,选择哪种存储驱动程序取决于你的具体需求和环境。如果你需要快速、轻量级的存储驱动程序,可以选择OverlayFS或AUFS;如果你需要高级功能,可以选择Device Mapper或Btrfs。

二、文件系统切换

文件系统切换的官方文档地址:Use the VFS storage driver | Docker DocsLearn how to optimize your use of VFS driver.https://docs.docker.com/storage/storagedriver/vfs-driver/

查看当前文件系统的类型

centos7.7.1908镜像的默认文件系统类型为overlay2

复制代码
docker info

1.停止docker运行

复制代码
service docker stop

2.编辑/etc/docker/daemon.json。如果它还不存在,请创建后再编辑它。添加以下内容

复制代码
{
  "storage-driver": "vfs"
}

如果daemon.json文件包含格式错误的json,则Docker不会启动。

3.开启docker

复制代码
service docker start

4.验证守护程序是否正在使用vfs存储驱动程序

复制代码
docker info

docker info

Storage Driver: vfs

...

至此,docker文件系统由overlay2切换为vfs。

相关推荐
Java陈序员2 天前
轻量强大!一款现代化的 Kubernetes 集群管理与监控工具!
云原生·容器·kubernetes
爱吃橘子橙子柚子3 天前
3CPU性能排查总结(超详细)【Linux性能优化】
运维·cpu
Sheffield3 天前
Docker的跨主机服务与其对应的优缺点
linux·网络协议·docker
Sheffield4 天前
Alpine是什么,为什么是Docker首选?
linux·docker·容器
马艳泽4 天前
win10下运行Start Broker and Proxy报错解决
docker
舒一笑4 天前
程序员效率神器:一文掌握 tmux(服务器开发必备工具)
运维·后端·程序员
NineData5 天前
数据库管理工具NineData,一年进化成为数万+开发者的首选数据库工具?
运维·数据结构·数据库
用户13573999256605 天前
Windows 从 0 搭建 WSL2 原生 AI 开发环境:Codex + Docker + VSCode
docker
vi_h5 天前
在 macOS 上通过 Docker 安装并运行 Ollama(详细可执行教程)
macos·docker·ollama
黑心老魔5 天前
通过 Docker 创建开发环境
docker·开发环境