5.4.2. 比较 Overlay 和 Overlay2 图形驱动程序
OverlayFS 是一种联合文件系统。它允许您在一个文件系统上使用另外一个文件系统。更改记录在上面的文件系统中,而较小的文件系统则未修改。这允许多个用户共享文件系统镜像,如容器或 DVD-ROM,基础镜像使用只读介质。
OverlayFS 在一个 Linux 主机上对两个目录进行分层,并将其呈现为一个目录。这些目录称为层,卸载过程指代为联合挂载。
OverlayFS 使用两个图形驱动程序之一,即 overlay 或 overlay2。从 Red Hat Enterprise Linux 7.2 开始, overlay 成为受支持的图形驱动程序。从 Red Hat Enterprise Linux 7.4 开始,overlay2 开始被支持。Red Hat Enterprise Linux 7.4 中支持 docker 守护进程中的 SELinux。有关在您的 RHEL 版本中使用 OverlayFS 的详情,包括支持性和用法注意事项,请查看 Red Hat Enterprise Linux 发行注记。
overlay2 驱动程序原生支持多达 128 个低 OverlayFS 层,但 overlay 驱动程序只能处理一个较低 OverlayFS 层。因此,overlay2 驱动程序为与层相关的 Docker 命令(如 docker build
)提供了更好的性能,并在后备文件系统中消耗较少的内节点。
因为 overlay 驱动程序与一个较低 OverlayFS 层工作,所以您无法将多层镜像作为多个 OverlayFS 层实现。相反,每个镜像层都以自己的目录的形式在 /var/lib/docker/overlay 下实施。然后,硬链接将用作一个空间效率的方式来引用与较低层共享的数据。
Docker 建议使用带有 OverlayFS 而不是 overlay 驱动程序的 overlay2 驱动程序,因为它在内节点使用率方面效率更高。