提示:详细解决方案电梯直达Release v0.17.0 · docker/buildx · GitHub,关于Github国内连接不稳定,可能一下子打不开,可以多刷几次试试,或者寻找其他方案。
问题描述
使用基于Windows wsl构建的Ubuntu虚拟机,应用Docker构建镜像时报错如下:
failed to fetch metadata: fork/exec /root/.docker/cli-plugins/docker-buildx: exec format error
ERROR: BuildKit is enabled but the buildx component is missing or broken.
Install the buildx component to build images with BuildKit:
https://docs.docker.com/go/buildx/
提示:我这里是Ubuntu系统环境变量中遇到的问题,以下解决方案只针对Linux系统,其他系统可参考文中给出的链接地址。
原因分析:
根据错误原因提示是:BuildKit已启用,但buildx组件丢失或损坏。个人推测是我使用wsl构建的Linux虚拟机,与原生Windows系统隔离不彻底,在删除了Windows桌面版Docker后导致文件错误,不知推测是否正确,如果有误欢迎指正,不过解决方案是官方方案,按照下述方法解决问题还是OK的。
解决方案:
这里选择的解决方案是人工下载替换,去Release v0.17.0 · docker/buildx · GitHub下载最新版docker-buildx,放入.docker/cli-plugins/目录下。具体可参考链接GitHub - docker/buildx: Docker CLI plugin for extended build capabilities with BuildKit或Gitee - buildx,人工下载处理文档如下图:
具体步骤:
- 下载最新版本的buildx文件,现在最新版本是v0.17.0。
- 将下载的文件重命名,
buildx-v0.17.0.linux-amd64
重命名为docker-buildx
,注意:文件重命名为docker-buildx,不要带任何后缀名。
重命名前:
重命名后: - 最后一步将重命名后
docker-buildx
文件放到Linux虚拟机.docker/cli-plugins/
目录下,这里通过MobaXterm将文件丢进去,然后就可以build镜像了。如果没有安装MobaXterm终端工具的话,关于其他传文件到虚拟机的方法自行搜索,不过推荐MobaXterm简单方便。
参考链接:
Docker Build Overview
GitHub - docker/buildx: Docker CLI plugin for extended build capabilities with BuildKit