Run-6ren">
gpt4 book ai didi

Dockerfile "rm -Rf"失败

转载 作者:IT老高 更新时间:2023-10-28 21:26:16 51 4
gpt4 key购买 nike

我有一个非常简单的 dockerfile,用“rm -Rf”在安装后删除安装文件,但是我收到了一些错误,例如:

Step 4/4 : RUN rm -Rf /INSTALLATION ---> Running in 19fe828f3c9drm: cannot remove '/INSTALLATION/Subsystems/Common': Directory not emptyrm: cannot remove '/INSTALLATION/Subsystems/EMS': Directory not empty

我都是用root用户运行的。

我的 docker 文件:

FROM centosCOPY INSTALLATION/ /INSTALLATION/ RUN  rm -Rf /INSTALLATION

我的操作系统是centos7,宿主操作系统是RHLE 7。

docker 信息

[root@snap460c03 1]# docker infoContainers: 53 Running: 27 Paused: 0 Stopped: 26Images: 19Server Version: 1.13.0Storage Driver: overlay Backing Filesystem: xfs Supports d_type: falseLogging Driver: json-fileCgroup Driver: cgroupfsPlugins:  Volume: local Network: bridge host macvlan null overlaySwarm: inactiveRuntimes: runcDefault Runtime: runcInit Binary: docker-initcontainerd version: 03e5862ec0d8d3b3f750e19fca3ee367e13c090erunc version: 2f7393a47307a16f8cee44a37b262e8b81021e3einit version: 949e6faSecurity Options: seccomp  Profile: defaultKernel Version: 3.10.0-229.el7.x86_64Operating System: Red Hat Enterprise Linux Server 7.1 (Maipo)OSType: linuxArchitecture: x86_64CPUs: 24Total Memory: 94.41 GiBName: snap460c03ID: T3ST:6DXJ:SDST:3W3J:Z4NB:UXF7:HGSZ:A3WH:ELHX:GVZW:APTD:7ZEKDocker Root Dir: /var/lib/dockerDebug Mode (client): falseDebug Mode (server): falseHttp Proxy: http://16.85.88.10:8080/No Proxy: docker-registryRegistry: https://index.docker.io/v1/Experimental: falseInsecure Registries: docker-registry:5000 127.0.0.0/8Live Restore Enabled: false

我也试过新建一个容器,手动尝试,结果也是错误:

[root@devvm13 1]# docker run -it e20c9c5ffa8a /bin/bash[root@f3efa193700d /]# rm -Rf /INSTALLATION/Subsystems/Common/*[root@f3efa193700d /]# rm -Rf /INSTALLATION/Subsystems/Common rm: cannot remove '/INSTALLATION/Subsystems/Common': Directory not empty

你可以看到第二个rm是失败的,我试过rmdir,resule也是错误的。

当我 ls 目录时,它显示:

ls /INSTALLATION/Subsystems/Commonls: cannot access /INSTALLATION/Subsystems/Common/eium-license.config: No such file or directoryls: cannot access /INSTALLATION/Subsystems/Common/install_jdk.sh: No such file or directoryeium-license.config  install_jdk.sh

你可以说没有这样的文件,但跟着文件。

最佳答案

我遇到了同样的问题,花了几个小时后发现了这个问题:- https://github.com/docker/docker/issues/27358

长话短说,这就是我修复它的方法。

当您执行 docker info 时,在您的输出中您有 Storage Driver: overlay,我也有同样的情况,我所做的是将叠加更改为 devicemapper。按照此处显示的说明进行操作 - https://docs.docker.com/engine/userguide/storagedriver/device-mapper-driver/#configure-docker-with-the-devicemapper-storage-driver

您还必须停止并启动 docker 服务。

注意:更改后,您将丢失所有过去的图像,这意味着当您键入 docker imagesdocker ps 时,您将看不到任何图像/容器。它们将存在于文件系统中,它们将占用磁盘空间。所以你必须手动删除那个目录,所以它会在 /var/lib/docker/overlay 下。

关于Dockerfile "rm -Rf"失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42183994/

51 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com