docker 创建多架构镜像

2023-12-30  本文已影响0人  wwq2020

创建builder

docker buildx create --use --name mutli-arch

创建后会成为默认的builder,通过如下命令查看当前使用的builder(带星号的是默认的builder)

docker buildx ls

如果可执行程序支持多架构

构建镜像

docker buildx build --platform=linux/amd64,linux/arm64 -t demo:v0.1 -f Dockerfile . --push

如果builder不对,则指定builder进行构建镜像

docker  --context=mutli-arch build --platform=linux/amd64,linux/arm64 -t demo:v0.1 -f Dockerfile . --push

验证

查看manifest是否是多架构

docker buildx imagetools inspect  demo:v0.1

如果可执行程序支持多架构

构建镜像

docker build -t demo:v0.1-arm64 -f Dockerfile-arm64 .
docker build -t demo:v0.1-amd64 -f Dockerfile-amd64 .

也可以通过build arg复用一个dockerfile

docker build --build-arg ARCH=arm64 --build-arg OS=linux -t demo:v0.1-arm64 -f Dockerfile .
docker build --build-arg ARCH=amd64 --build-arg OS=linux -t demo:v0.1-amd64 -f Dockerfile .

创建manifest

docker manifest create demo:v0.1 demo:v0.1-arm64 demo:v0.1-amd64
docker manifest annotate demo:v0.1 demo:v0.1-amd64 --os linux --arch amd64
docker manifest annotate demo:v0.1 demo:v0.1-arm64 --os linux --arch arm64

推送镜像和manifest

docker manifest push demo:v0.1
docker push demo:v0.1-arm64
docker push demo:v0.1-amd64
上一篇 下一篇

猜你喜欢

热点阅读