練習 - 擷取現有的 Docker 映像並將它部署到本機

已完成

採用 Docker Hub 現有的映像,並在本機電腦上執行,是建置和執行您專屬 Docker 映像的不錯起點。

您決定從 Docker Hub 嘗試執行範例映像,藉以證明公司應用程式的概念。 您選取的映像會實作基本的 .NET Core ASP.NET Web 應用程式。 一旦建立了 Docker 映像的部署流程,您就能使用 Docker 執行公司專屬的其中一個 Web 應用程式。

在此練習中,您會從 Docker Hub 提取並執行映像。 您會檢查 Docker 的本機狀態,以利於了解部署的元素。 最後,您會從電腦中移除容器和映像。

重要

此練習會在您的電腦中執行,而非在 Azure 中。 您需要在本機安裝 Docker,才能繼續執行練習。 下載:https://hub.docker.com/editions/community/docker-ce-desktop-windows/

從 Docker Hub 提取並執行範例應用程式

  1. 在電腦上啟動 Docker。

  2. 在您的本機電腦上開啟 [命令提示字元] 視窗。

  3. 輸入下列程式碼,從 Docker Hub 登錄並提取 ASP.NET 範例應用程式映像。 此映像包含 Microsoft 開發的範例 Web 應用程式,且是以 Visual Studio 中可用的預設 ASP.NET 範本為基礎。

    docker pull mcr.microsoft.com/dotnet/samples:aspnetapp
    
  4. 輸入下列程式碼,以確認該映像已儲存至本機。

    docker image ls
    

    您應該會看到名為 mcr.microsoft.com/dotnet/samples 的存放庫,其標籤為 aspnetapp

  5. 輸入下列程式碼以啟動範例應用程式。 -d 旗標為執行作為背景、非互動式應用程式。 -p 旗標是在本機建立至埠 8080 的容器中對應埠 8080。 此設定旨在避免與您電腦上已執行的任何 Web 應用程式發生衝突。 此命令會回應適用於執行個體冗長的十六進位識別碼。

    docker run -d -p 8080:8080 mcr.microsoft.com/dotnet/samples:aspnetapp
    
  6. 開啟網頁瀏覽器,並輸入適用於範例 Web 應用程式的 URL:http://localhost:8080。 您應該會看到如下列螢幕擷取畫面的頁面:

    Screenshot of the sample web app running in a browser.

檢查本機 Docker 登錄中的容器

  1. 在命令提示字元中,執行下列命令以檢視在本機登錄中正在執行的容器。

    docker ps
    

    輸出應如下所示:

    CONTAINER ID   IMAGE                                             COMMAND                  CREATED          STATUS          PORTS                  NAMES
    96c851831ade   mcr.microsoft.com/dotnet/samples:aspnetapp   "dotnet aspnetapp.dll"   22 minutes ago   Up 22 minutes   0.0.0.0:8080->80/tcp   eager_montalcini
    

    [COMMAND] 欄位會顯示執行中命令 dotnet aspnetapp.dll 所啟動的容器。 此命令會叫用 .NET Core 執行階段,啟動 aspnetapp.dll 中的程式碼 (範例 Web 應用程式的程式碼)。 [ ] 欄位指出映射中的埠 8080 已對應到您電腦上的埠 8080。 STATUS 欄位顯示應用程式仍在執行。 請記下容器的 NAME

  2. 執行下列命令以停止 Docker 容器,並取代預留位置<NAME>為上一個命令的輸出名稱。

    docker container stop <NAME>
    
  3. 執行下列命令以確認容器已不再執行。 -a 旗標指出,此命令會顯示所有容器的狀態,而不限於仍在執行的容器。 輸出應該會顯示容器的「狀態」為 [已結束]

    docker ps -a
    
  4. 在您的網頁瀏覽器中,重新整理範例 Web 應用程式頁面 (http://localhost:8080/). 它應該會失敗並顯示「連線被拒」錯誤。

從本機登錄移除容器和映像

  1. 雖然容器已停止,但它仍能載入並重新啟動。 在 [命令提示字元] 視窗中執行下列命令,以將之移除,並取代預留位置<NAME>為您的容器名稱。

    docker container rm <NAME>
    
  2. 透過執行下列命令來驗證該容器已遭移除。 該命令應該不會再列出該容器。

    docker ps -a
    
  3. 列出在您的電腦上目前可用的映像。 該輸出應該要顯示樣本存放庫。

    docker image ls
    
  4. 從登錄移除映像。

    docker image rm mcr.microsoft.com/dotnet/samples:aspnetapp
    
  5. 該輸出應該會列出許多未標記標籤和已刪除的項目。 執行下列命令以再次列出映像,並驗證 microsoft/dotnet-samples Web 應用程式的映像確實已消失。

    docker image ls