Docker 多架构支持, 自已制做多架构支持

registry 地址: docker.io修改为自已的地址

一. 创建各架构镜像

arm: Dockerfile  (base image: ubuntu:18.04)

FROM ubuntu@sha256:60a99a670b980963e4a9d882f631cba5d26ba5d14ccba2aa82a4e1f4d084fb1f  

第一步,创建arm镜像,并上传

  docker build -t docker.io/platform/multiarch_test:0.0.1-arm ./
  docker push docker.io/platform/multiarch_test:0.0.1-arm

 

arm64: Dockefile (base image: ubuntu:18.04)

FROM ubuntu@sha256:fab7c78ecd4c52e801b8a597846ec5c00ff2e4f4d1d92f6af1c8390eabc1d2d5

第一步,创建arm64镜像,并上传

  docker build -t docker.io/platform/multiarch_test:0.0.1-arm64 ./
  docker push docker.io/platform/multiarch_test:0.0.1-arm64

 

amd64: Dockerfile (base image: ubuntu:18.04)

FROM ubuntu@sha256:0925d086715714114c1988f7c947db94064fd385e171a63c07730f1fa014e6f9

第一步,创建amd64镜像,并上传

  docker build -t docker.io/platform/multiarch_test:0.0.1-amd64 ./
  docker push docker.io/platform/multiarch_test:0.0.1-amd64

二. 创建manifest

docker manifest create docker.io/platform/multiarch_test:0.0.1 \
docker.io/platform/multiarch_test:0.0.1-arm \
docker.io/platform/multiarch_test:0.0.1-arm64 \
docker.io/platform/multiarch_test:0.0.1-amd64 \
--amend

 

三. 添加镜像附加信息,用于架构及系统区分

附加信息参数:

--arch                Set architecture
--os                  Set operating system
--os-features         Set operating system feature
--variant             Set architecture variant

 

  •  为arm 镜像添加附加信息
docker manifest annotate 
--arch=arm
--os=linux 
--variant=v7 
docker.io/platform/multiarch_test:0.0.1
docker.io/platform/multiarch_test:0.0.1-arm
  • 为arm64镜像添加附加信息
docker manifest annotate 
--arch=arm64
--os=linux 
--variant=v8
docker.io/platform/multiarch_test:0.0.1
docker.io/platform/multiarch_test:0.0.1-arm64
  • 为amd64镜像添加附加信息
docker manifest annotate 
--arch=amd64
--os=linux 
docker.io/platform/multiarch_test:0.0.1
docker.io/platform/multiarch_test:0.0.1-amd64

 

四. 推送manifest 到 repository

docker manifest push docker.io/platform/multiarch_test:0.0.1

五. 测试

于各架构机器之上,执行以下命令

docker pull docker.io/platform/multiarch_test:0.0.1

docker run -ti docker manifest push docker.io/platform/multiarch_test:0.0.1 sh

如果都正常运行,则创建各架构镜像成功。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章