本教學課程是教學課程系列的第一部分,示範如何在 Linux Service Fabric 叢集中使用容器。 在本教學課程中,已準備好多容器應用程式,以便與 Service Fabric 搭配使用。 在後續的教學課程中,這些映像會作為 Service Fabric 應用程式的一部分。 在本教學課程中,您將了解如何:
- 從 GitHub 複製應用程式來源
- 從應用程式來源建立容器映像
- 部署 Azure Container Registry (ACR) 執行個體
- 標記 ACR 的容器映像
- 將影像上傳至 ACR
在本教學課程系列中,您將瞭解如何:
- 為 Service Fabric 建立容器映像
- 使用容器建置和執行 Service Fabric 應用程式
- 如何在 Service Fabric 中處理容錯轉移和擴展
先決條件
- 針對 Service Fabric 設定的 Linux 開發環境。 請依照 此處 的指示設定您的 Linux 環境。
- 本教學課程要求您執行 Azure CLI 2.0.4 版或更新版本。 執行
az --version以尋找版本。 如果您需要安裝或升級,請參閱安裝 Azure CLI 模組。 - 此外,它要求您有可用的 Azure 訂用帳戶。 有關免費試用版的更多信息,請訪問 這裡.
取得應用程式程式碼
本教學課程中使用的範例應用程式是投票應用程式。 該應用程式由前端 Web 元件和後端 Redis 實例組成。 元件會封裝成容器映像檔。
使用 git 將應用程式的複本下載至您的開發環境。
git clone https://github.com/Azure-Samples/service-fabric-containers.git
cd service-fabric-containers/Linux/container-tutorial/
該解決方案包含兩個資料夾和一個「docker-compose.yml」檔案。 'azure-vote' 資料夾包含 Python 前端服務,以及用來建置映像的 Dockerfile。 'Voting' 目錄包含部署至叢集的 Service Fabric 應用程式套件。 這些目錄包含本教學課程的必要資產。
建立容器映像
在 azure-vote 目錄內,執行下列命令來建置前端 Web 元件的映像。 此命令會使用此目錄中的 Dockerfile 來建置映像檔。
docker build -t azure-vote-front .
備註
如果您被拒絕許可,請按照 此 文檔了解如何在沒有 sudo 的情況下使用 docker。
此命令可能需要一些時間,因為所有必要的依賴項都需要從 Docker Hub 提取。 完成時,請使用 docker images 命令來查看您剛才建立的 azure-vote-front 映像。
docker images
部署 Azure 容器登錄
首先執行 az login 命令以登入您的 Azure 帳戶。
az login
接下來,使用 az account 命令選擇您的訂用帳戶,以建立 Azure 容器登錄。 您必須輸入 Azure 訂用帳戶的訂用帳戶識別碼,以 <取代subscription_id>。
az account set --subscription <subscription_id>
部署 Azure 容器登錄時,您首先需要資源群組。 Azure 資源群組是在其中部署與管理 Azure 資源的邏輯容器。
使用 az group create 命令來建立資源群組。 在此範例中,會在 westus 區域中建立名為 myResourceGroup 的資源群組。
az group create --name <myResourceGroup> --location westus
使用 az acr create 命令建立 Azure 容器登錄。 將 <acrName> 替換為您要在訂用帳戶下建立的容器登錄名稱。 此名稱必須是英數字元且唯一。
az acr create --resource-group <myResourceGroup> --name <acrName> --sku Basic --admin-enabled true
在本教學課程的其餘部分,我們會使用 「acrName」 作為您選擇的容器登錄名稱的預留位置。 請記下此值。
登入至您的容器註冊表
先登入您的 ACR 執行個體,再將映像推送至它。 使用 az acr login 命令來完成作業。 提供建立容器登錄時的唯一名稱。
az acr login --name <acrName>
該命令完成後返回“登錄成功”消息。
標記容器映像
每個容器映像檔都需要使用登錄的 loginServer 名稱來標記。 此標籤用於將容器映像推送至映像登錄時進行路由。
若要查看目前映像的清單,請使用 docker images 命令。
docker images
輸出:
REPOSITORY TAG IMAGE ID CREATED SIZE
azure-vote-front latest 052c549a75bf About a minute ago 913MB
若要取得 loginServer 名稱,請執行下列命令:
az acr show --name <acrName> --query loginServer --output table
這會輸出具有下列結果的資料表。 此結果將用來標記您的 azure-vote-front 映像,再在下一個步驟中將它推送至容器登錄。
Result
------------------
<acrName>.azurecr.io
現在,使用您的容器登錄伺服器的 loginServer 來標記 azure-vote-front 影像。 另外,在圖像名稱的末尾添加 :v1 。 此標籤表示映像版本。
docker tag azure-vote-front <acrName>.azurecr.io/azure-vote-front:v1
標記後,執行「docker images」以驗證操作。
輸出:
REPOSITORY TAG IMAGE ID CREATED SIZE
azure-vote-front latest 052c549a75bf 23 minutes ago 913MB
<acrName>.azurecr.io/azure-vote-front v1 052c549a75bf 23 minutes ago 913MB
將映像檔推送至鏡像庫
將 azure-vote-front 映像推送至登錄。
使用下列範例,將 ACR loginServer 名稱替換為您環境中的 loginServer 名稱。
docker push <acrName>.azurecr.io/azure-vote-front:v1
docker push 命令需要幾分鐘才能完成。
列出登錄中的映像
若要傳回已推送至 Azure 容器登錄的映像清單,請使用 az acr repository list 命令。 使用 ACR 實例名稱更新命令。
az acr repository list --name <acrName> --output table
輸出:
Result
----------------
azure-vote-front
教學課程完成時,容器映像已儲存在私人 Azure Container Registry 執行個體中。 此映像會在後續教學課程中從 ACR 部署至 Service Fabric 叢集。
後續步驟
在本教學課程中,已從 GitHub 提取應用程式,並建立容器映像並將其推送至登錄。 完成以下步驟:
- 從 GitHub 複製應用程式來源
- 從應用程式來源建立容器映像
- 部署 Azure Container Registry (ACR) 執行個體
- 標記 ACR 的容器映像
- 將影像上傳至 ACR
繼續進行下一個教學課程,以瞭解如何使用 Yeoman 將容器封裝至 Service Fabric 應用程式。