Ubuntu 20 LTS中用户配置目录外执行Docker build失败如何解决
问题根因
该报错由snap版本Docker的沙箱访问限制导致:Ubuntu 20 LTS默认通过snap渠道安装的Docker被限制了文件访问权限,仅允许读取用户家目录(/home/[用户名])、/media、/mnt三类默认路径下的文件。你在根目录自行创建的/test路径不在授权访问列表内,Docker进程无法读取该路径下的Dockerfile,因此抛出找不到/var/lib/snapd/void/Dockerfile的错误。
解决方案
可根据需求选择以下任意一种方案:
- 方案1(推荐,无后续路径限制问题):卸载snap版本Docker,改用Docker官方deb包安装
先执行卸载命令:
再添加Docker官方软件源后安装deb版本即可,该版本无snap沙箱限制,可访问任意路径的构建文件。sudo snap remove docker --purge - 方案2(无需修改配置,快速生效):将构建目录移动到snap Docker默认允许的路径下
把存放Dockerfile的构建目录放到用户家目录、/mnt或/media路径下,再执行构建命令即可正常运行。 - 方案3(保留snap Docker,开放全局文件访问权限):给snap版本Docker授予全路径访问权限
依次执行以下两条命令即可:sudo snap connect docker:all-files sudo systemctl restart snap.docker.dockerd
内容的提问来源于stack exchange,提问作者Chuck
相关产品推荐
相关产品推荐

