Can't Delete file created via Docker

流过昼夜 提交于 2019-12-07 21:48:41

问题


I used a docker image to run a program on our school's server using this command.

 docker run -t -i -v /target/new_directory 990210oliver/mycc.docker:v1 /bin/bash

After I ran it it created a firectory on my account called new_directory. Now I don't have permissions to delete or modify the files.

How do I remove this directory?


回答1:


Change the owner of all the files on the directory to your used ID within the container running as root, then exit the container and remove the directory.

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



回答2:


I also had this problem.

After:

docker run --name jenkins -p 8080:8080 -v $HOME/jenkins:/var/jenkins_home jenkins jenkins

I couldn't remove files in $HOME/jenkins.

Ricardo Branco's answer didn't work for me because chown gave me:

chown: changing ownership of '/var/jenkins_home': Operation not permitted

Solution:

exec /bin/bash into container as a root user:

docker exec -it --privileged --user root container_id /bin/bash

then:

cd /var/jenkins_home/ && rm -r * .*



回答3:


I made @siulkilulki's answer into one line:

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

Note that here the CONTAINER must be up.




回答4:


Try this:

docker stop $CONTAINER_NAME
docker rm -v $CONTAINER_NAME

I guess this should remove the mounted dir. If it doesn't, do this explicitly:

sudo rm -rf /target/new_directory


来源:https://stackoverflow.com/questions/42423999/cant-delete-file-created-via-docker

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!