Docker绑定挂载生成的宿主机目录删除提示Permission denied如何解决
问题原因
Docker daemon默认以root权限运行,使用-v参数挂载不存在的本地路径时,Docker会自动以root身份创建该路径,目录默认归属root用户、权限为755,普通用户无修改/删除权限,因此直接执行rm -rf会报错。
注意:操作前请确认路径对应你要删除的残留目录,避免误删其他数据
解决方法
按可用权限选择对应方案即可:
方案1:拥有宿主机sudo权限
- 先确认目录未被其他进程挂载:
mount | grep /path/to/typo - 如果存在挂载记录,先卸载目录:
sudo umount /path/to/typo - 直接删除目录:
sudo rm -rf /path/to/typo - 若仍报错,检查是否存在特殊文件属性:
sudo lsattr /path/to/typo
如果输出包含i属性,先移除属性再删除:sudo chattr -i /path/to/typo && sudo rm -rf /path/to/typo
- 先确认目录未被其他进程挂载:
方案2:无sudo权限、但拥有Docker运行权限
启动一个临时的轻量容器挂载上层目录,利用容器的root权限删除残留目录:docker run --rm -v $(pwd):/work alpine rm -rf /work/typo
执行前请确保当前工作目录为typo目录的父目录,若typo不在当前目录,将$(pwd)替换为typo所在的父目录绝对路径即可。
内容的提问来源于stack exchange,提问作者Josh B.
相关产品推荐
相关产品推荐

