Ubuntu 21.10 snap版Docker在外接设备目录构建镜像报can't stat错误
根因说明
该报错是snap版Docker的默认AppArmor安全策略限制导致,与文件本身的权限、用户组配置无关:snap分发的Docker默认没有授予访问/media目录下可移动存储的权限,因此会触发你日志中出现的AppArmor拒绝访问报错。
解决方案
方案一:开启可移动媒体访问权限(推荐,无需重装)
这是最简便的修复方式,直接通过snap接口授权即可:
- 执行授权命令:
sudo snap connect docker:removable-media - (可选)验证授权是否生效,执行
snap connections docker,确认输出中removable-media接口状态为已连接 - 重启Docker服务使配置生效:
sudo snap restart docker - 回到外接存储的构建目录重新执行
docker build即可正常完成构建。
方案二:更换为apt安装的官方Docker版本
如果不需要使用snap版Docker,可直接卸载后替换为标准apt安装版本,该版本默认无/media路径访问限制:
- 卸载当前snap版Docker:
sudo snap remove docker --purge - 按照Docker官方Ubuntu apt源安装流程完成标准版本安装,之后即可直接在外接存储目录执行构建操作。
内容的提问来源于stack exchange,提问作者NRagot
相关产品推荐
相关产品推荐

