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

ker*_*chi 1 file-permissions docker docker-volume

我有以下问题。

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

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$
Run Code Online (Sandbox Code Playgroud)

信息:此 Docker 容器已被删除。

我寻找解决方案,但尚未找到。

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

亲切的问候,马丁

Han*_*ian 8

进入父目录。以 root 身份运行容器并删除目录

cd ~/app/xy
docker run --rm -v $(pwd):/app -w /app alpine rm -rf data
Run Code Online (Sandbox Code Playgroud)

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