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

如果都正常運行,則創建各架構鏡像成功。

 

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