docker镜像有不同cpu架构的版本,指定版本只能在指定的cpu架构运行。
一般开发机是x86的cpu只能构建x86的镜像,在arm架构的服务器上无法运行。
通过buildx可以同时构建多平台的docker镜像。
buildx默认的builder比较旧,支持的架构较少,先创建一个自己的builder:
docker buildx create --use --name mybuilder
Bash构建镜像并推送到docker hub:
docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t dev:latest --push .
Bash或者使用–type=docker参数缓存镜像在本地,必须分别为不同的架构构建:
docker buildx build -t dev/armv7 --platform=linux/arm/v7 -o type=docker .
docker buildx build -t dev/arm64 --platform=linux/arm64 -o type=docker .
docker buildx build -t dev/amd64 --platform=linux/amd64 -o type=docker .
Bash