Docker在生成图像时无法删除文件

Docker在生成图像时无法删除文件,docker,Docker,我的DockerFile包含以下说明: rm -f plugins.7z 此命令在早期版本的docker中正常工作,但在版本1.13中失败。我看到了错误: cannot access plugins.7z: No such file or directory 如果我打开一个带有基本映像的容器并手动执行该命令,我会看到相同的错误 尝试列出文件夹内容将显示: # ls -lrt ls: cannot access plugins.7z: No such file or directory

我的DockerFile包含以下说明:

rm -f plugins.7z
此命令在早期版本的docker中正常工作,但在版本1.13中失败。我看到了错误:

cannot access plugins.7z: No such file or directory
如果我打开一个带有基本映像的容器并手动执行该命令,我会看到相同的错误

尝试列出文件夹内容将显示:

# ls -lrt
  ls: cannot access plugins.7z: No such file or directory
  total 12
  ???????????   ? ?          ?             ?            ? plugins.7z
此问题未列为中的已知问题。如何进一步调试该问题

编辑:

  • 由于IP的原因,我不能在这里发布完整的Dockerfile。而且,可能没有必要。正如我提到的,即使手动运行容器并尝试执行命令,我也能够模拟问题
  • 在我尝试删除该文件之前,该文件已存在
  • 我错了,问题列表中没有类似的bug。这是
  • 问题可能与该文件无关。删除文件夹中的其他文件/文件夹也会使它们显示为???权限
  • 执行该操作的用户是root用户

  • 我们能够克服这个问题

    1.13的预测结果显示

    "IMPORTANT: On Linux distributions where devicemapper was the default
    storage driver, the overlay2, or overlay is now used by default 
    (if the kernel supports it)."
    

    所以我试着放回devicemapper,它现在可以正常工作了。

    删除目录失败的原因是备份(
    xfs
    )文件系统没有格式化为d_类型支持(“ftype=1”);您可以在github;上找到讨论

    要验证您的系统上是否有
    d_type
    支持,请检查
    docker info
    的输出

    Server Version: 1.13.1
    Storage Driver: overlay
     Backing Filesystem: xfs
     Supports d_type: false
    Logging Driver: json-file
    
    此要求也在中进行了说明

    请注意,创建XFS文件系统时必须启用
    -n ftype=1
    选项以用作覆盖。使用rootfs和在系统安装期间创建的任何文件系统,在Anaconda kickstart中设置
    --mkfsoptions=-n ftype=1
    参数。安装后创建新文件系统时,请运行
    35;mkfs-t xfs-n ftype=1/PATH/TO/DEVICE
    命令。要确定现有文件系统是否适合用作覆盖,请运行
    xfs_info/PATH/To/DEVICE | grep ftype
    命令,查看是否启用了
    ftype=1
    选项

    解决问题,

    • 使用
      ftype=1重新格式化设备
    • 使用不同的存储驱动程序。请注意,默认设备映射器配置(使用环回设备)不建议用于生产,因此需要手动配置

    为了向后兼容(docker的旧版本允许在没有
    d_type
    的系统上运行overlay),docker 1.13将只在守护程序日志()中记录警告,但在将来的版本中不再受支持。

    您可以发布完整的docker文件吗?插件文件在哪里?哪个目录?也许你试图从错误的路径上删除它?我在Docker 1.12.6中遇到了这个问题——问题是文件系统支持d_类型,正如下面的答案和评论中所充分解释的那样。你可以分享更多的细节吗?@VatsalPrakash我尝试的只是权宜之计。请看接受的答案。正确的解决方案是在具有不同文件系统的磁盘上安装docker。。Thanxx:)