檢查映像管理的登錄作業
Azure 容器登錄會儲存及管理私人容器映像和其他成品,類似於 Docker Hub 儲存公用 Docker 容器映像的方式。 您可以使用 Docker 命令列介面 (Docker CLI),對您的容器登錄進行登入、推送、提取和其他容器映像作業。
開始在容器登錄中管理映像之前,請先設定下列資源:
- Azure Container Registry:在 Azure 訂用帳戶中建立容器登錄。 例如,使用 Azure 入口網站、Azure CLI 或 Azure PowerShell。
- Azure CLI:您應該已在本機安裝 Azure CLI。 Azure CLI 可以簡化重複的工作。
- Docker CLI:您應該已在本機安裝 Docker Desktop。 Docker Desktop 可讓您根據程式代碼存放庫建立和推送映射。 Docker 提供可在任何 macOS、Windows 或 Linux 系統上輕鬆設定 Docker 的套件。
使用 Azure CLI 登入登錄
您必須先登入登錄,才能推送和提取容器映像。 您可以使用 Azure CLI 命令來完成登入。
Azure CLI 可在 Windows、macOS 和 Linux 環境中安裝。 它也可以在 Docker 容器和 Azure Cloud Shell 中執行。 Azure CLI 的目前版本是 2.53.0。 若要尋找已安裝的版本,並查看是否需要更新,請執行 az version 命令。
使用 az login 命令登入 Azure。 使用與您的容器項目相關聯的 Azure 訂用帳戶。
使用 az acr login 命令登入登錄。 使用 Azure CLI 登入時,請只指定登錄資源名稱。 請勿使用完整登入伺服器名稱。 例如,使用下列命令登入名為 mycontainerregistryapl2003 的登錄。
az acr login --name mycontainerregistryapl2003
此命令會在完成之後傳回「登入成功」訊息。
將映像推送至登錄
若要將映像推送至 Azure Container Registry,您必須先有映像。 如果您沒有任何本機容器映像,請使用 docker pull 命令來提取現有的公用映射。
下列範例會將 hello-world 映射從公用Microsoft Container Registry 提取到本機計算機:
docker pull mcr.microsoft.com/hello-world
您必須先以登錄登入伺服器的完整名稱標記映像,才能將映射推送至登錄。 登入伺服器名稱的格式 <registry-name>.azurecr.io 為 (必須是全部小寫),例如 mycontainerregistryapl2003.azurecr.io。
您可以使用 命令標記映像 docker tag ,如下所示:
docker tag mcr.microsoft.com/hello-world mycontainerregistryapl2003.azurecr.io/hello-world:v1
此範例會建立標籤目標映像 (mycontainerregistryapl2003.azurecr.io/hello-world:v1) ,該映像是指來源影像 (mcr.microsoft.com/hello-world)。
最後,使用 docker push 命令將本機映射推送至登錄實例。 下列範例會建立存放 hello-world 庫,其中包含 hello-world:v1 映像。
docker push mycontainerregistryapl2003.azurecr.io/hello-world:v1
將映像推送到您的容器登錄之後,請從您的本機 Docker 環境中移除 hello-world:v1 映像。
docker rmi命令不會從 Azure 容器登錄中的 hello-world 存放庫移除映像。
docker rmi mycontainerregistryapl2003.azurecr.io/hello-world:v1
在 Azure 入口網站中,若要檢視推送的映像,請開啟您的容器登錄,然後選取 [ 存放庫]。
提取和移除登錄映像
docker pull使用 命令,將映像從登錄提取到本機電腦:
docker pull mycontainerregistryapl2003.azurecr.io/hello-world:v1
若要從 Azure 容器登錄中移除映像,您可以使用 Azure CLI 命令 az acr repository delete。 例如,下列命令會刪除 hello-world:v1 標籤所參考的資訊清單、任何唯一的層資料,以及參考資訊清單的所有其他標籤。
az acr repository delete --name mycontainerregistryapl2003 --image hello-world:v1