了解應用程式映像

已完成

容器化映像是使用 Azure Kubernetes Service (AKS) 的任何分散式應用程式不可或缺的一部分。 您可以使用標記來:

  • 建立您需要的不同容器映像。
  • 將您的映像儲存在容器登錄中。
  • 部署特定標記的映像。

在此單元中,您會探索 CI/CD 管線如何使用標記的應用程式映像。

容器映像

容器映像是封裝應用程式及其所有軟體相依性的可執行軟體套件組合。 本課程模組會使用 Docker 容器映像來建置 Contoso 網站應用程式。

Docker 映像包含應用程式程式代碼,以及建立應用程式完整可執行映像所需的任何相依性。 容器映像是由 Dockerfile 所設定,該 Dockerfile 具有一組容器運行時間的指示。

如果您查看分支根目錄中的 Dockerfile,您會看到映像是以另一個 nginx 映射作為基底開始。 通常從頭開始處理具有所需檔案的其他映像, 而不是從頭開始。

您可以使用 命令,從 Dockerfile docker build 建置映像。

重要

docker build命令無法在 Cloud Shell 環境中運作,因為不允許在執行中的容器內使用 Docker。 如果您想要測試 docker build . 命令,請在本機複製存放庫,並使用您自己的 Docker 安裝來執行命令。

映像標記

標記是使用容器映像的一個重要層面。 標籤可以告訴您影像類型,並區分多個具有相同名稱的影像。

例如,如果您希望存放庫中的Node.js映像從 Node 12 開始,您可以在 Dockerfile 中包含標記 FROM node:12 。 如果您想要從最新的穩定版本開始,可以使用 FROM node:current 標記。 標籤會指出影像的類型以及預期執行的動作。

建置容器映像會使用與建立 GitHub 存放庫相同的技術,而 Docker 容器路徑通常類似 存放庫/映像名稱。 但是,您可以建置多個版本的相同映像,以使用標記來區分它們。

在本課程模組中,您會使用標籤發行版本。 您可以使用語意版本控制規則,例如 v1.0.0 1.0.0版,為每個生產版本v*.*.*建立標記。 每個標記推送至main分支都會產生與該推送上標記相同名稱的新映像標記。 未標記的推送只會 latest 產生標記。

所有推送、標記和非標記、使用最新的程式代碼更新 latest 映像,並將其部署至預備環境。 標記 v* 的映像也會部署到生產環境。 只有官方標記的映像會部署到生產環境,而預備和生產環境一律會有 latest 暫存映像。

容器登錄

使用影像的重要層面是其儲存位置。 容器登錄是儲存容器化映像檔案的位置。 例如,GitHub 是容器登錄,也會儲存程式代碼變更和版本。 您可以使用 命令,將新的應用程式映像推送至容器登錄 docker push

在本課程模組中,您會將應用程式映像檔案儲存在您在上一個單元中建立的 Azure Container Registry 實例中。 建立個人存取令牌 (PAT) 並發出同盟憑證以向 GitHub 和 Azure 進行驗證之後,管線基本上會將 docker builddocker push 命令自動化。

既然您已瞭解 CI/CD 管線和標記的容器映射,請繼續進行下一個單元,開始建置 GitHub Actions CI/CD 管線。

檢定您的知識

1.

什麼是 Docker 映像?

2.

CI/CD 管線如何使用映射標記?