无法删除通过 Docker 创建的文件

Kat*_*tie 5 docker docker-volume

我使用 docker 镜像使用这个命令在我们学校的服务器上运行一个程序。

 docker run -t -i -v /target/new_directory 990210oliver/mycc.docker:v1 /bin/bash
Run Code Online (Sandbox Code Playgroud)

在我运行它之后,它在我的帐户上创建了一个名为 new_directory 的 firectory。现在我没有删除或修改文件的权限。

如何删除此目录?

siu*_*lki 12

我也有这个问题。

后:

docker run --name jenkins -p 8080:8080 -v $HOME/jenkins:/var/jenkins_home jenkins jenkins
Run Code Online (Sandbox Code Playgroud)

我无法删除$HOME/jenkins.

里卡多布兰科的回答对我不起作用,因为chown给了我:

chown: changing ownership of '/var/jenkins_home': Operation not permitted
Run Code Online (Sandbox Code Playgroud)

解决方案:

exec /bin/bash 以 root 用户身份进入容器:

docker exec -it --privileged --user root container_id /bin/bash
Run Code Online (Sandbox Code Playgroud)

然后:

cd /var/jenkins_home/ && rm -r * .*
Run Code Online (Sandbox Code Playgroud)


小智 5

我把 @siulkilulki 的答案写成了一行:

docker exec --privileged --user root <CONTAINER_ID> chown -R "$(id -u):$(id -g)" <TARGET_DIR>
Run Code Online (Sandbox Code Playgroud)

请注意,这里的 CONTAINER 必须处于向上状态。


Ric*_*nco 2

将目录中所有文件的所有者更改为您在以 root 身份运行的容器中使用的 ID,然后退出容器并删除该目录。

docker run --rm -v /target/new_directory 990210oliver/mycc.docker:v1 chown -R $(id -un):$(id -un) /target/new_directory
exit
rm -rf $HOME/new_directory
Run Code Online (Sandbox Code Playgroud)