Docker Buildx
所属分类 docker
浏览量 7
普通 docker build 只能构建当前电脑架构的镜像:
Windows x86 → 只能构建 x86 镜像
放到苹果 M 芯片 / Linux ARM64 上 不能直接运行
强行运行会非常慢、报错、无法编译
形象的比喻
普通 docker build ,在中国,只能造中国标准插头,去国外用不了。
docker buildx 同时造出中国、美国、欧洲三种插头,全世界能用。
Buildx 是 Docker 官方自带的跨平台构建神器
在 x86 电脑(Windows/Intel)上,
直接构建出能在苹果 M 芯片、ARM 服务器上原生运行的 Docker 镜像。
Buildx 的作用 :
1. 跨架构构建
在 Windows x86 上,能直接构建:
linux/amd64(普通电脑)
linux/arm64(苹果 M 芯片 + ARM 服务器)
2. 一次构建多个架构
一条命令,同时生成 x86 + arm64 镜像。
3. 生成官方标准的多架构镜像
推送到 Docker Hub 后,任何机器拉取时自动匹配自己的架构
Windows 新版 Docker Desktop 默认都开启了 buildx
docker buildx version → 有结果 = 已开启
docker buildx ls → 有列表 = 正常工作
在 Windows x86 上 构建苹果芯片 + Linux ARM64 能用的镜像
Dockerfile
# 基础镜像(官方多架构,支持 amd64 + arm64)
FROM eclipse-temurin:21-jre-alpine
# 工作目录
WORKDIR /app
# 复制打包好的 jar 包(target/xxx.jar 改成你实际的包名)
COPY target/*.jar app.jar
# 启动命令
ENTRYPOINT ["java", "-jar", "app.jar"]
用 eclipse-temurin:官方 JDK,天然支持多架构(x86 + arm64)
alpine 版本体积小、启动快
打包 SpringBoot 应用
mvn clean package -DskipTests
生成 target/xxx.jar
构建 仅 ARM64 镜像(苹果芯片 + Linux ARM64)
docker buildx build --platform linux/arm64 -t myspringboot:arm64 --load .
构建 同时支持 amd64 + arm64 并推送到镜像仓库
docker buildx build --platform linux/amd64,linux/arm64 -t 你的用户名/myspringboot:1.0 --push .
本地普通构建(仅 x86)
docker build -t myspringboot:amd64 .
在苹果 M 芯片 / ARM64 服务器上直接跑
docker run -p 8080:8080 myspringboot:arm64
查看本地镜像架构
docker inspect 镜像名:标签 | grep Architecture
docker image inspect 镜像名:标签 --format "{{.Architecture}}"
输出:arm64 或 amd64
上一篇
下一篇
Docker Compose 设置 SpringBoot应用配置参数
springboot应用查看配置值及来源
springboot profile激活
Docker容器内使用Arthas