使用 Docker CLI 推送您的第一個映像至 Azure 容器登錄庫

Azure 容器登錄會儲存及管理私人容器映像和其他成品,其方式類似於 Docker Hub 儲存公用 Docker 容器映像。 您可以使用 Docker 命令列介面 (Docker CLI),對您的容器登錄進行登入推送提取和其他容器映像作業。

在下列步驟中,您會下載公用 Nginx 映像、將其標記為私人 Azure 容器登錄庫、推送到您的登錄庫,然後再從登錄庫將其提取出來。

必要條件

登入登錄庫

您的私人容器登錄庫有數種方式可進行驗證

在命令列中工作時,建議的方法是使用 Azure CLI 命令 az acr login。 例如,若要登入名為 myregistry 的登錄,請登入 Azure CLI,然後向登錄進行驗證:

az login
az acr login --name myregistry

您也可以使用 docker login 來登入。 例如,您可能已基於自動化案例指派服務主體到您的登錄庫。 當您執行下列命令時,若出現提示,請以互動方式提供服務主體 appID (使用者名稱) 和密碼。 如需管理登入認證的最佳作法,請參閱 docker login 命令參考:

docker login myregistry.azurecr.io

完成後,這兩個命令會傳回 Login Succeeded

注意

  • 您可能想要搭配 Docker 擴充功能使用 Visual Studio Code,以獲得更快速且更方便的登入。

提示

當您使用 docker login 時,以及當您標記要推送到您的登錄庫的映像時,請一定要指定完整登錄庫名稱 (全部小寫)。 在本文的範例中,完整名稱是 myregistry.azurecr.io

提取公用 Nginx 映像

先將公用 Nginx 映像提取至您的本機電腦。 此範例會從 Microsoft Container Registry 提取映像。

docker pull mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine

在本機執行容器

執行下列 docker run 命令,在連接埠 8080 上以互動方式 (-it) 啟動 Nginx 容器的本機執行個體。 --rm 引數會指定當您停止容器時,便將其移除。

docker run -it --rm -p 8080:80 mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine

瀏覽至 http://localhost:8080,檢視由 Nginx 在執行中的容器內提供的預設網頁。 您應該會看到如下所示的頁面:

本機電腦上的 Nginx

由於您是使用 -it 以互動方式啟動容器,所以您可以在從瀏覽器瀏覽該容器時,於命令列上看到 Nginx 伺服器的輸出。

若要停止並移除該容器,請按 Control+C

建立映像的別名

使用 docker tag,就能以登錄庫的完整路徑建立映像的別名。 這個範例會指定 samples 命名空間,以避免登錄庫根目錄雜亂。

docker tag mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine myregistry.azurecr.io/samples/nginx

如需使用命名空間進行標記的詳細資訊,請參閱 Azure Container Registry 的最佳做法存放庫命名空間一節。

將映像推送至您的登錄庫

您已使用私人登錄庫的完整路徑標記映像,接下來您可以使用 docker push 將映像推送到登錄庫:

docker push myregistry.azurecr.io/samples/nginx

從登錄庫提取映像

使用 docker pull 命令從登錄庫提取映像:

docker pull myregistry.azurecr.io/samples/nginx

啟動 Nginx 容器

使用 docker run 命令從登錄庫執行您所提取的映像:

docker run -it --rm -p 8080:80 myregistry.azurecr.io/samples/nginx

瀏覽至 http://localhost:8080 以檢視執行中的容器。

若要停止並移除該容器,請按 Control+C

移除映像 (選用)

如果您不再需要該 Nginx 映像,您可以使用 docker rmi 命令在本機上將其刪除。

docker rmi myregistry.azurecr.io/samples/nginx

若要從 Azure Container Registry 移除映像,您可以使用 Azure CLI 命令 az acr repository delete。 例如,下列命令會刪除 samples/nginx:latest 標記所參考的資訊清單、任何唯一的圖層資料,以及參考該資訊清單的所有其他標記。

az acr repository delete --name myregistry --image samples/nginx:latest

建議

您可以在這裡找到驗證選項的詳細資訊。

下一步

現在您已了解基本概念了,可以開始使用您的登錄庫! 例如,將登錄中的容器映像部署至:

您可以選擇性地安裝適用於 Visual Studio Code 的 Docker 擴充功能Azure 帳戶擴充功能,來搭配 Azure 容器登錄使用。 向 Azure 容器登錄提取及推送映像,或是執行 ACR 工作,都可以在 Visual Studio Code 內完成。