下载
中文
注册

容器内安装驱动后,删除容器失败

问题描述

容器内使用--docker命令安装驱动,安装成功后退出容器,删除容器失败,出现如下报错信息。

[root@localhost new_version_package]# docker rm 38b6090e5803
Error response from daemon: container 38b6090e58034fa17ba925239a00014ea01ea4a173b8f7f255f6f1ba3fc18542: driver "overlay2" failed to remove root filesystem: unlinkat /var/lib/docker/overlay2/2b1575db553b0d6129ba47d3e661465056347e2b558ee08c9215dc7b2f4e0dc1/diff/usr/local/Ascend/driver/tools/ascend_upgrade_crl.sh: operation not permitted

可能原因

在容器内安装驱动后,驱动包会锁定安装目录,导致退出容器后删除容器失败。

解决方案

  1. 执行如下命令,查看使用的容器ID。

    docker ps -a

    回显信息如下:

    CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS                     PORTS               NAMES
    38b6090e5803        84282c80cdda        "/bin/bash"         About a minute ago   Exited (0) 5 seconds ago                       pensive_shannon
  2. 执行如下命令,查看容器路径。

    命令:docker inspect CONTAINER ID | grep UpperDir

    示例:docker inspect 38b6090e5803 | grep UpperDir

    回显信息如下:
     "UpperDir": "/var/lib/docker/overlay2/2b1575db553b0d6129ba47d3e661465056347e2b558ee08c9215dc7b2f4e0dc1/diff",
  3. 执行如下命令,增加容器路径权限。

    命令:chattr -iR UpperDir

    示例:chattr -iR /var/lib/docker/overlay2/2b1575db553b0d6129ba47d3e661465056347e2b558ee08c9215dc7b2f4e0dc1/diff

  4. 执行如下命令,删除容器。

    命令:docker rm CONTAINER ID

    示例:docker rm 38b6090e5803