如何在没有 root 权限的情况下删除主机上挂载的 Docker 卷目录

How to remove mounted Docker volume directory on host without root permissions

我有以下问题。

我无意中在我没有 root 权限的主机上安装了一个 Docker 卷。现在,我在尝试删除目录时收到 'Permission denied' 错误,因为 Docker 容器是使用默认根用户创建的。

x@y:~/app/xy$ ls -ld data
drwxr-xr-x 4 root root 4096 Apr  7 16:26 data
x@y:~/app/xy$ rm -rf data
rm: cannot remove 'data/data/binlog.000005': Permission denied
rm: cannot remove 'data/data/undo_002': Permission denied
rm: cannot remove 'data/data/server-key.pem': Permission denied
rm: cannot remove 'data/data/ibdata1': Permission denied
rm: cannot remove 'data/data/client-cert.pem': Permission denied
...
rm: cannot remove 'data/dump/client-key.pem': Permission denied
rm: cannot remove 'data/dump/ca.pem': Permission denied
x@y:~/app/xy$

信息:此 Docker 容器已删除。

我寻找解决方案,但还是找到了。

你对我如何解决我的问题有什么建议吗?

亲切的问候, 马丁

进入父目录。 运行 一个容器作为 root 并删除目录

cd ~/app/xy
docker run --rm -v $(pwd):/app -w /app alpine rm -rf data

如果您想说服某人他们也可以在主机上给您 root 权限,请参阅此内容:https://docs.docker.com/engine/security/#docker-daemon-attack-surface。 当然,这可能 back-fire 他们会剥夺你的 docker 特权:)