選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

最佳化 Amazon ECR 的效能

焦點模式
最佳化 Amazon ECR 的效能 - Amazon ECR

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

您可以使用下列有關設定和策略的建議來優化使用 Amazon ECR 時的效能。

使用 Docker 1.10 與以上版本以取得同時分層上傳優勢

Docker 映像是由各層組成,亦是映像的中介建立階段。Dockerfile 中的每一行都會導致新層的建立。當您使用 Docker 1.10 或以上版本,Docker 預設會在同時上傳 Amazon ECR 時盡量推送越多的層,因此上傳時間會更快。

使用較小的基礎映像

整個 Docker Hub 可用的預設映像可能會包括許多您的應用程式不需要的依存項目。請考慮使用 Docker 社群中由其他人所建立並維護的較小映象,或者使用 Docker 的最小 Scratch 映像建立您自己的基礎映像。如需詳細資訊,請參閱 Docker 文件中的建立基礎映像

先前在 Dockerfile 中放置最少更改的依存項目

Docker 快取層可加速建立時間。如果最後一次建立後分層便沒有任何變更,Docker 會使用快取的版本,而不會重新建立該分層。然而,每一分層會以之前的分層作為依據。如果分層變更了,Docker 不僅會重新編譯該分層,也會重新編譯任何之後的分層。

若要將重建 Docker 檔案與重新上傳分層的時間縮至最短,請考慮在您的 Docker 檔案中先置放變更頻率最少的依存項目。並稍後在堆疊中置放快速變更的依存項目 (例如您的應用程式原始碼)。

鏈結命令以避免不必要的檔案儲存

分層上建立的中介檔案即使在後續分層中被刪除了,仍將保持為該分層的一部分。請思考下列範例:

WORKDIR /tmp RUN wget http://example.com/software.tar.gz RUN wget tar -xvf software.tar.gz RUN mv software/binary /opt/bin/myapp RUN rm software.tar.gz

在此範例中,由第一、二個 RUN 命令所建立的分層仍將包括原始的 .tar.gz 檔案以及其所有解壓縮的內容。即使第四個 RUN 命令已將 .tar.gz 檔案刪除,這些命令可鏈結在一起成為單一的 RUN 陳述式,以確保這些不必要的檔案不會成為最終 Docker 映像的一部分:

WORKDIR /tmp RUN wget http://example.com/software.tar.gz &&\ wget tar -xvf software.tar.gz &&\ mv software/binary /opt/bin/myapp &&\ rm software.tar.gz
使用最接近的區域端點

您可透過使用最接近您執行中的應用程式的區域端點,以減少從 Amazon ECR 提取映像的延遲。如果您的應用程式正在 Amazon EC2 執行個體上執行,您可使用下列 shell 程式碼以從該執行個體的可用區域取得區域:

REGION=$(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone |\ sed -n 's/\(\d*\)[a-zA-Z]*$/\1/p')

可以使用--region參數將區域傳遞至 AWS CLI 指令,或使用指aws configure令設定為輪廓的預設區域。您也可以在使用 AWS SDK 撥打電話時設定區域。如需詳細資訊,請參閱您特定程式設計語言的開發套件文件。

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。