首页  

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