我经历了与运行容器相关联的图像的较低层(diff)被删除。(因此容器中的一些文件被删除)
我认为Docker信息中的“Native Overlay Diff”选项非常可疑。
我的docker信息如下:
$ docker info
...
Storage Driver: overlay2
Backing Filesystem: xfs
Supports d_type: true
Native Overlay Diff: false
...
你们知道“Native Overlay Diff”的确切含义吗?
2条答案
按热度按时间a9wyjsp71#
这似乎与
OVERLAY_FS_REDIRECT_DIR
内核选项有关,在Kconfig中描述为:配置OVERLAY_FS_REDIRECT_DIR
bool“Overlayfs:默认情况下打开重定向目录功能”
取决于OVERLAY_FS
帮助
如果启用了这个配置选项,那么默认情况下,覆盖文件系统在重命名目录时将使用重定向。在这种情况下,仍然可以使用“redirect_dir=off”模块选项全局关闭重定向,或者使用“redirect_dir=off”挂载选项在文件系统示例的基础上关闭重定向。
请注意,重定向不向后兼容。也就是说,在不支持此功能的内核上安装具有重定向的覆盖将产生意想不到的结果。
如果不确定,说N。
关于moby问题34342和34320的一些讨论表明,如果以下所有条件都为真:
1.启用了
OVERLAY_FS_REDIRECT_DIR
内核选项1.存储引擎为overlay2(大多数情况下为默认值)
redirect_dir=off
挂载的文件系统上存储镜像1.使用“本机”diff驱动程序
1.将非空目录重命名为docker构建的一部分,例如在Dockerfile中,如下所示:
然后,所得到的镜像将无法正确记录重命名目录的内容(即,dir2将不包含newfile),因为目录重命名被实现为使用扩展文件属性(xattr)的重定向,这是docker归档过程无法理解的。为了解决这个问题,当满足上面的前三个条件时,docker将使用“naive”diff驱动程序,该驱动程序生成正确的图像,但比“native”diff驱动程序慢。
忽略警告似乎是安全的,但是如果您注意到构建速度缓慢,那么您可以尝试使用
redirect_dir=off
选项重新挂载为/var/lib/docker
服务的卷。mum43rcc2#
临时修复
然后重启Docker
显示docker信息
使用此cmd启用本机覆盖差异