在WSL中如何用一条Docker命令同时构建x86与ARM镜像?
解决Docker同时构建多平台镜像的问题
错误原因
你使用的docker build命令本身不支持同时构建多个平台的镜像,该命令的--platform参数仅能指定单个平台,传入多个平台时会触发格式错误。
正确解决方案
需要使用Docker的buildx扩展工具来实现多平台同时构建,步骤如下:
创建并启用buildx构建实例(首次使用时执行)
docker buildx create --use这条命令会创建一个支持多平台构建的builder实例,并设置为当前使用的构建环境。
执行多平台构建并推送至Docker Hub
使用docker buildx build命令,通过逗号分隔指定多个平台,同时添加--push参数将构建好的多平台镜像推送到Docker Hub:docker buildx build --platform linux/amd64,linux/arm64 --tag sosnus15/pinger:1.0.3 --push .
补充说明
- 如果仅想在本地构建多平台镜像而不推送,
buildx默认不会将镜像加载到本地Docker环境(因为本地Docker仅支持单个平台镜像)。若需保存单个平台的镜像到本地,可指定单个平台并添加--load参数,例如:docker buildx build --platform linux/amd64 --tag sosnus15/pinger:1.0.3 --load . - 确保你的Docker Hub账号已登录(执行
docker login),否则无法推送镜像。
内容的提问来源于stack exchange,提问作者sosnus
相关产品推荐
相关产品推荐

