日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

本地構(gòu)建和推送多架構(gòu)鏡像到容器鏡像服務(wù)

更新時(shí)間:

使用ARM架構(gòu)資源部署容器通常可以節(jié)省不少成本,但也可能導(dǎo)致維護(hù)成本增加,您可能需要面向x86、ARM架構(gòu)分別構(gòu)建鏡像并設(shè)置不同的Tag。您可以使用docker buildx來構(gòu)建多架構(gòu)鏡像,并通過docker manifest實(shí)現(xiàn)一個(gè)Tag管理多架構(gòu)的容器鏡像。

前提條件

從Dockerfile構(gòu)建多架構(gòu)鏡像

  1. 本文以Java Maven項(xiàng)目為例,在Java Maven項(xiàng)目中新建Dockerfile文件,并在文件中添加如下內(nèi)容。

    #First stage: complete build environment
    FROM maven:3.5.0-jdk-8-alpine AS builder
    
    # add pom.xml and source code
    ADD ./pom.xml pom.xml
    ADD ./src src/
    
    # package jar
    RUN mvn clean package
    
    # Second stage: minimal runtime environment
    From openjdk:8-jre-alpine
    
    # copy jar from the first stage
    COPY --from=builder target/my-app-1.0-SNAPSHOT.jar my-app-1.0-SNAPSHOT.jar
    
    EXPOSE 8080
    
    CMD ["java", "-jar", "my-app-1.0-SNAPSHOT.jar"]
  2. 在Java Maven項(xiàng)目所在的目錄下打開本地終端,執(zhí)行如下命令。

    1. 執(zhí)行如下命令,關(guān)閉docker buildx的Provenance attestations選項(xiàng)。

      export BUILDX_NO_DEFAULT_ATTESTATIONS=1
    2. 執(zhí)行如下命令,構(gòu)建多架構(gòu)鏡像。

      docker buildx build . -t acr-test-registry.cn-hangzhou.cr.aliyuncs.com/test/test:multi  --platform linux/amd64,linux/arm64 --push

      執(zhí)行該命令后,將在本地構(gòu)建出Amd64、Arm64兩種平臺(tái)的容器鏡像,并將其推送到容器鏡像倉庫中。

    說明

    執(zhí)行Docker Push需要提前通過Docker Login登錄目標(biāo)倉庫。例如:docker login --username=xxx acr-test-registry.cn-hangzhou.cr.aliyuncs.com

從已有鏡像中創(chuàng)建多架構(gòu)鏡像

本文以您擁有兩個(gè)單架構(gòu)鏡像,且希望使用這兩個(gè)單架構(gòu)鏡像創(chuàng)建出一個(gè)多架構(gòu)鏡像為例。

  1. 運(yùn)行docker tag,重新每個(gè)單架構(gòu)鏡像打上標(biāo)記,并將其推送至容器鏡像服務(wù)企業(yè)版實(shí)例。如下以一個(gè)架構(gòu)為ARM64和一個(gè)架構(gòu)為AMD64的單架構(gòu)Nginx鏡像為例。

    docker tag nginx:arm64 acr-test-registry.cn-hangzhou.cr.aliyuncs.com/multi-arch/nginx:arm64
    docker push acr-test-registry.cn-hangzhou.cr.aliyuncs.com/multi-arch/nginx:arm64
    
    docker tag nginx:amd64 acr-test-registry.cn-hangzhou.cr.aliyuncs.com/multi-arch/nginx:amd64
    docker push acr-test-registry.cn-hangzhou.cr.aliyuncs.com/multi-arch/nginx:amd64
  2. 運(yùn)行docker manifest create創(chuàng)建一個(gè)Manifest List,將1中的鏡像合并到一個(gè)多架構(gòu)鏡像中。

    docker manifest create acr-test-registry.cn-hangzhou.cr.aliyuncs.com/multi-arch/nginx:multi \
     acr-test-registry.cn-hangzhou.cr.aliyuncs.com/multi-arch/nginx:arm64 \
     acr-test-registry.cn-hangzhou.cr.aliyuncs.com/multi-arch/nginx:amd64
  3. 運(yùn)行docker manifest push將Manifest List送到容器鏡像服務(wù)企業(yè)版實(shí)例中。

    docker manifest push acr-test-registry.cn-hangzhou.cr.aliyuncs.com/multi-arch/nginx:multi

相關(guān)文檔

您也可以通過容器鏡像服務(wù)ACR控制臺(tái)配置并在云端運(yùn)行多架構(gòu)鏡像構(gòu)建任務(wù),請(qǐng)參見構(gòu)建多架構(gòu)容器鏡像