將自訂軟體移轉至使用自訂容器的 Azure App Service
Azure App Service 在 Windows 上提供預先定義的應用程式堆疊,例如 ASP.NET 或 Node.js。 這些應用程式堆疊會在 IIS 上執行。 預先設定的 Windows 環境會使作業系統無法執行:
- 系統管理存取權。
- 軟體安裝。
- 全域組件快取的變更。
如需詳細資訊,請參閱 Azure App Service 上的作業系統功能。
您可以從 Visual Studio 部署自訂設定的 Windows 映像,以變更應用程式所需的作業系統。 這可讓您輕鬆地移轉需要自訂 OS 和軟體設定的內部部署應用程式。 此教學課程會示範如何將使用 Windows 字型庫中已安裝自訂字型的 ASP.NET 應用程式移轉至 App Service。 您會將自訂的 Windows 映像從 Visual Studio 部署到 Azure Container Registry,然後在 App Service 中執行。
必要條件
完成本教學課程:
- 註冊 Docker Hub 帳戶。
- 安裝適用於 Windows 的 Docker。
- 設定 Docker 以執行 Windows 容器。
- 安裝 Visual Studio 2022,記得包含 ASP.NET 與 Web 開發及 Azure 開發工作負載。 若您已安裝 Visual Studio 2022:
- 選取 [說明]>[檢查更新],在 Visual Studio 中安裝最新的更新。
- 選取 [工具]>[取得工具與功能] 以在 Visual Studio 中新增工作負載。
在本機設定應用程式
下載範例
在此步驟中,您要設定本機 .NET 專案。
- 下載範例專案。
- 擷取 (解壓縮) custom-font-win-container-master.zip 檔案。
範例專案包含一個使用 Windows 字型庫中已安裝自訂字型的簡單 ASP.NET 應用程式。 不需要安裝字型。 不過,此範例是與基礎作業系統整合的應用程式範例。 若要將此類應用程式移轉至 App Service,可以重新建構程式碼以移除整合,或在自訂 Windows 容器中原封不動進行移轉。
安裝字型
在 Windows 檔案總管中,瀏覽至 custom-font-win-container-master/CustomFontSample,以滑鼠右鍵按一下 FrederickatheGreat-Regular.ttf,然後選取 [安裝]。
可從 Google Fonts 下載此字型。
執行應用程式
在 Visual Studio 中開啟 custom-font-win-container-master/CustomFontSample.sln 檔案。
選取 Ctrl+F5 以執行應用程式而不偵錯。 應用程式會在預設瀏覽器中顯示。
由於該應用程式是使用已安裝的字型,因此無法在 App Service 沙箱中執行。 但是,可以改為使用 Windows 容器部署它,因為可以在 Windows 容器中安裝字型。
設定 Windows 容器
在 [方案總管] 中,以滑鼠右鍵按一下 CustomFontSample 專案,然後選取 [新增]>[容器協調流程支援]。
選取 [Docker Compose]>[確定]。
您的專案現在已設定為在 Windows 容器中執行。 Dockerfile
已新增至 CustomFontSample 專案,而且 docker-compose 專案已新增至解決方案。
從 [方案總管] 開啟 Dockerfile。
您需要使用支援的父映像。 請使用下列程式碼取代 FROM
這一行,以變更父映像:
FROM mcr.microsoft.com/dotnet/framework/aspnet:4.7.2-windowsservercore-ltsc2019
在檔案結尾處加入以下這一行並儲存檔案:
RUN ${source:-obj/Docker/publish/InstallFont.ps1}
您可以在 CustomFontSample 專案中找到 InstallFont.ps1。 它是用於安裝字型的簡單指令碼。 您可以在 PowerShell 資源庫找到較複雜版本的指令碼。
注意
若要在本機測試 Windows 容器,請確定已在您的本機電腦上啟動 Docker。
發佈到 Azure Container Registry
Azure Container Registry 可儲存映像以用於容器部署。 您可以設定 App Service 使用 Azure Container Registry 中裝載的映像。
開啟發佈精靈
在 [方案總管] 中,以滑鼠右鍵按一下 CustomFontSample 專案,然後選取 [發佈]。
建立和發佈登錄
在 [發佈精靈] 中,選取 [容器登錄]>[建立新的 Azure Container Registry]>[發佈]。
使用 Azure 帳戶登入
在 [建立新的 Azure Container Registry] 對話方塊中,選取 [新增帳戶],然後登入您的 Azure 訂用帳戶。 如果您已登入,請從下拉式清單中選取包含所需訂用帳戶的帳戶。
設定登錄
使用下表建議的值作為指南,設定新的容器登錄。 完成後,請選取 [建立]。
設定 | 建議的值 |
---|---|
DNS 首碼 | 保留產生的登錄名稱,或將它變更為其他唯一名稱。 |
資源群組 | 選取 [新增],輸入 myResourceGroup,然後選取 [確定]。 |
SKU | 基本。 如需詳細資訊,請參閱定價層。 |
登錄位置 | 西歐 |
終端機視窗開啟並顯示映像部署進度。 等待部署完成。
登入 Azure
登入 Azure 入口網站。
建立 Web 應用程式
從左側功能表,選取 [建立資源]>[網路]>[用於容器的 Web App]。
設定應用程式基本功能
在 [基本] 索引標籤上,根據下表進行設定。 然後選取 [下一步: Docker]。
設定 | 建議的值 |
---|---|
訂用帳戶 | 請確定已選取正確的訂用帳戶。 |
資源群組 | 選取 [新建],輸入 myResourceGroup,然後選取 [確定]。 |
名稱 | 輸入唯一名稱。 Web 應用程式的 URL 是 https://<app-name>.azurewebsites.net ,其中 <app-name> 是您的應用程式名稱。 |
發行 | Docker 容器 |
作業系統 | Windows |
區域 | 西歐 |
Windows Plan | 選取 [新建],輸入 myAppServicePlan,然後選取 [確定]。 |
您的 [基本] 索引標籤應該會顯示如下:
設定 Windows 容器
在 [Docker] 索引標籤中,依照下表中的說明設定您的自訂 Windows 容器,然後選取 [檢閱 + 建立]。
設定 | 建議的值 |
---|---|
映像來源 | Azure 容器登錄 |
登錄 | 選取您先前建立的登錄。 |
映像 | customfontsample |
標籤 | latest |
完成應用程式建立作業
選取 [建立],並等候 Azure 建立所需的資源。
瀏覽至 Web 應用程式
部署完成時,會顯示通知方塊。
選取 [前往資源] 。
在應用程式頁面中,選取 [URL] 下方的連結。
新的瀏覽器頁面隨即開啟,並顯示下列頁面:
等候幾分鐘並再試一次,直到獲得包含您預期字型的首頁為止:
恭喜! 您已運用 Windows 容器將 ASP.NET 應用程式移轉至 Azure App Service。
檢視容器啟動記錄
Windows 容器載入可能需要一些時間。 若要查看進度,請移至下列 URL。 (以您的應用程式名稱取代 <app-name>。)
https://<app-name>.scm.azurewebsites.net/api/logstream
串流處理的記錄會如下所示:
14/09/2018 23:16:19.889 INFO - Site: fonts-win-container - Creating container for image: customfontsample20180914115836.azurecr.io/customfontsample:latest.
14/09/2018 23:16:19.928 INFO - Site: fonts-win-container - Create container for image: customfontsample20180914115836.azurecr.io/customfontsample:latest succeeded. Container Id 329ecfedbe370f1d99857da7352a7633366b878607994ff1334461e44e6f5418
14/09/2018 23:17:23.405 INFO - Site: fonts-win-container - Start container succeeded. Container: 329ecfedbe370f1d99857da7352a7633366b878607994ff1334461e44e6f5418
14/09/2018 23:17:28.637 INFO - Site: fonts-win-container - Container ready
14/09/2018 23:17:28.637 INFO - Site: fonts-win-container - Configuring container
14/09/2018 23:18:03.823 INFO - Site: fonts-win-container - Container ready
14/09/2018 23:18:03.823 INFO - Site: fonts-win-container - Container start-up and configuration completed successfully
Azure App Service 會使用 Docker 容器技術,來裝載內建映像和自訂映像。 若要查看內建映像清單,請執行 Azure CLI 命令 'az webapp list-runtimes --os linux'。 如果這些映像無法滿足您的需求,可以建置和部署自訂映像。
注意
您的容器應以 x86-64 架構為目標。 不支援 ARM64。
在本教學課程中,您會了解如何:
- 將自訂 Docker 映像推送至 Azure Container Registry。
- 將自訂映像部署至 App Service。
- 設定環境變數。
- 使用受控識別將映像提取至 App Service。
- 存取診斷記錄。
- 從 Azure Container Registry 對 App Service 啟用 CI/CD。
- 使用 SSH 連線到容器。
完成本教學課程會在您的 Azure 帳戶中針對容器登錄產生少量費用,而且可能會增加超過一個月的裝載容器成本。
設定初始環境
本教學課程需要 2.0.80 版或更新版本的 Azure CLI。 若您使用的是 Azure Cloud Shell,即已安裝最新版本。
- 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
在 Azure Cloud Shell 中使用 Bash 環境。 如需詳細資訊,請參閱 Azure Cloud Shell 中的 Bash 快速入門。
若要在本地執行 CLI 參考命令,請安裝 Azure CLI。 若您在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱〈如何在 Docker 容器中執行 Azure CLI〉。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱使用 Azure CLI 登入。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能詳細資訊,請參閱使用 Azure CLI 擴充功能。
執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade。
- 安裝用來建置Docker 映像的 Docker。 安裝 Docker 可能需要將電腦重新開機。
安裝 Docker 後,請開啟終端機視窗,並確認已安裝 Docker:
docker --version
複製或下載範例應用程式
您可以透過 GIT 複製或下載取得本教學課程的範例。
使用 Git 複製
複製範例存放庫:
git clone https://github.com/Azure-Samples/docker-django-webapp-linux.git --config core.autocrlf=input
確保您包含 --config core.autocrlf=input
引數,以確保在 Linux 容器內使用的檔案中有適當的行尾結束符號。
然後,瀏覽至資料夾:
cd docker-django-webapp-linux
從 GitHub 下載
您可以瀏覽 https://github.com/Azure-Samples/docker-django-webapp-linux 並選取 [程式碼] > [本機] > [下載 ZIP],而不使用 git clone。
將 ZIP 檔案解壓縮至名為 docker-django-webapp-linux 的資料夾。
然後在該 docker-django-webapp-linux 資料夾中開啟終端機視窗。
(選用) 檢查 Docker 檔案
這是範例中名為 Dockerfile 的檔案。 它會描述 Docker 映像,並包含設定指示。
FROM tiangolo/uwsgi-nginx-flask:python3.6
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt --no-cache-dir
ADD . /code/
# ssh
ENV SSH_PASSWD "root:Docker!"
RUN apt-get update \
&& apt-get install -y --no-install-recommends dialog \
&& apt-get update \
&& apt-get install -y --no-install-recommends openssh-server \
&& echo "$SSH_PASSWD" | chpasswd
COPY sshd_config /etc/ssh/
COPY init.sh /usr/local/bin/
RUN chmod u+x /usr/local/bin/init.sh
EXPOSE 8000 2222
#CMD ["python", "/code/manage.py", "runserver", "0.0.0.0:8000"]
ENTRYPOINT ["init.sh"]
- 第一個命令群組會在環境中安裝應用程式的需求。
- 第二組命令會建立 SSH 伺服器,以提供容器與主機之間改善的安全性通訊。
- 最後一行
ENTRYPOINT ["init.sh"]
會叫用init.sh
來啟動 SSH 服務和 Python 伺服器。
在本機建置和測試映像
注意
Docker Hub 具有每個 IP 提取的匿名數量配額和每個免費使用者提取的已驗證數量。如果您注意到您從 Docker Hub 的提取數量受到限制,若您尚未登入,請嘗試 docker login
。
執行下列命令以建置映像:
docker build --tag appsvc-tutorial-custom-image .
在本機執行 Docker 容器,測試組建是否能正常運作:
docker run -it -p 8000:8000 appsvc-tutorial-custom-image
此
docker run
命令會指定具有-p
引數的連接埠,並包含映像的名稱。-it
可讓您使用 Ctrl+C 來將其停止。提示
如果您在 Windows 上執行並看到 standard_init_linux.go:211: exec user process caused "no such file or directory" 錯誤,則 init.sh 檔案會包含 CRLF 行尾結束符號,而不是預期的 LF 尾結束符號。 如果您使用 Git 來複製範例存放庫,但省略了
--config core.autocrlf=input
參數,就會發生此錯誤。 在此情況下,請使用--config
引數再次複製存放庫。 如果您編輯 init.sh,並在 CRLF 結尾處儲存,您可能也會看到錯誤。 在此情況下,請只使用 LF 結束符號再次儲存檔案。瀏覽至
http://localhost:8000
,驗證 Web 應用程式和容器是否正常運作。
I. 建立使用者指派的受控識別
App Service 可以使用預設受控識別或使用者指派的受控識別,向容器登錄進行驗證。 在本教學課程中,您將使用使用者指派的受控識別。
執行 az group create 命令以建立資源群組:
az group create --name msdocs-custom-container-tutorial --location westeurope
您可以變更
--location
值,以指定您附近的區域。在資源群組中建立受控識別:
az identity create --name myID --resource-group msdocs-custom-container-tutorial
II. 建立容器登錄
使用下列
az acr create
命令來建立容器登錄。 以登錄的唯一名稱取代<registry-name>
。 名稱只能包含字母和數字,且必須是整個 Azure 中的唯一名稱。az acr create --name <registry-name> --resource-group msdocs-custom-container-tutorial --sku Basic --admin-enabled true
--admin-enabled
參數可讓您使用管理認證,將映像推送至登錄。執行
az credential acr show
命令來擷取系統管理認證:az acr credential show --resource-group msdocs-custom-container-tutorial --name <registry-name>
此命令的 JSON 輸出會提供兩個密碼以及登錄的使用者名稱。
III. 將範例映像推送至 Azure Container Registry
在本節中,您會將映像推送至 Azure Container Registry,以供 App Service 稍後使用。
從您建置範例映像的本機終端機,使用
docker login
命令來登入容器登錄:docker login <registry-name>.azurecr.io --username <registry-username>
以先前步驟中的值取代
<registry-name>
和<registry-username>
。 出現提示時,輸入上一節中的其中一個密碼。您在本節的所有其他步驟中,會使用相同的登錄名稱。
登入成功時,請將本機 Docker 映像標記至登錄:
docker tag appsvc-tutorial-custom-image <registry-name>.azurecr.io/appsvc-tutorial-custom-image:latest
使用
docker push
將映像推送至登錄:docker push <registry-name>.azurecr.io/appsvc-tutorial-custom-image:latest
第一次上傳映像可能需要幾分鐘的時間,因為其包含基礎映像。 後續的上傳通常會較快。
在等候時,可以完成下一節中的步驟,以設定從登錄部署 App Service。
IV. 授權登錄的受控識別
您建立的受控識別還沒有從容器登錄提取的授權。 在此步驟中,您會啟用該授權。
擷取受控識別的主體識別碼:
principalId=$(az identity show --resource-group msdocs-custom-container-tutorial --name myID --query principalId --output tsv)
擷取容器登錄的資源識別碼:
registryId=$(az acr show --resource-group msdocs-custom-container-tutorial --name <registry-name> --query id --output tsv)
授與受控識別存取容器登錄的權限:
az role assignment create --assignee $principalId --scope $registryId --role "AcrPull"
如需這些權限的詳細資訊,請參閱什麼是 Azure 角色型存取控制?。
V. 建立 Web 應用程式
使用
az appservice plan create
命令來建立 App Service 方案:az appservice plan create --name myAppServicePlan --resource-group msdocs-custom-container-tutorial --is-linux
App Service 方案會對應至裝載 Web 應用程式的虛擬機器。 根據預設,先前的命令會使用第一個月免費的低成本 B1 定價層。 您可以使用
--sku
參數來指定階層。使用
az webapp create
命令來建立 Web 應用程式:az webapp create --resource-group msdocs-custom-container-tutorial --plan myAppServicePlan --name <app-name> --deployment-container-image-name <registry-name>.azurecr.io/appsvc-tutorial-custom-image:latest
將
<app-name>
取代為 Web 應用程式的名稱。 此名稱在整個 Azure 中必須是唯一的。 使用上一節的登錄名稱取代<registry-name>
。提示
您可以使用命令
az webapp config container show --name <app-name> --resource-group msdocs-custom-container-tutorial
,隨時擷取 Web 應用程式的容器設定。 映像會在屬性DOCKER_CUSTOM_IMAGE_NAME
中指定。 透過 Azure DevOps 或 Azure Resource Manager 範本部署 Web 應用程式時,影像也會出現在名為LinuxFxVersion
的屬性中。 這兩個屬性都有相同的功能。 如果兩者都存在於 Web 應用程式的組態中,系統會優先使用LinuxFxVersion
。
VI. 設定 Web 應用程式
在此步驟中,您會設定 Web 應用程式,如下所示:
- 設定應用程式以將要求傳送至連接埠 8000。 範例容器正在連接埠 8000 上接聽 Web 要求。
- 告知您的應用程式使用受控識別從容器登錄提取映像。
- 從容器登錄設定持續部署 (對登錄的每個映像推送都會觸發您的應用程式來提取新的映像)。 不需要此部分,您的 Web 應用程式即可從容器登錄提取,但它可在將新映像推送至登錄時讓 Web 應用程式知道。 如果沒有它,您必須重新啟動 Web 應用程式,手動觸發映像提取。
使用
az webapp config appsettings set
,以應用程式程式碼所預期的內容設定WEBSITES_PORT
環境變數:az webapp config appsettings set --resource-group msdocs-custom-container-tutorial --name <app-name> --settings WEBSITES_PORT=8000
將
<app-name>
取代為上一個步驟中使用的名稱。使用
az webapp identity assign
命令在 Web 應用程式中啟用使用者指派的受控識別:id=$(az identity show --resource-group msdocs-custom-container-tutorial --name myID --query id --output tsv) az webapp identity assign --resource-group msdocs-custom-container-tutorial --name <app-name> --identities $id
將
<app-name>
取代為上一個步驟中使用的名稱。將應用程式設為使用受控識別,從 Azure Container Registry 提取。
appConfig=$(az webapp config show --resource-group msdocs-custom-container-tutorial --name <app-name> --query id --output tsv) az resource update --ids $appConfig --set properties.acrUseManagedIdentityCreds=True
將
<app-name>
取代為上一個步驟中使用的名稱。設定 Web 應用程式用來從 Azure Container Registry 提取的用戶端識別碼。 如果您使用系統指派的受控識別,則不需要此步驟。
clientId=$(az identity show --resource-group msdocs-custom-container-tutorial --name myID --query clientId --output tsv) az resource update --ids $appConfig --set properties.AcrUserManagedIdentityID=$clientId
在 App Service 中啟用 CI/CD。
cicdUrl=$(az webapp deployment container config --enable-cd true --name <app-name> --resource-group msdocs-custom-container-tutorial --query CI_CD_URL --output tsv)
CI_CD_URL
是 App Service 為您產生的 URL。 您的登錄應該使用此 URL 來通知 App Service 發生映像推送。 其實際上不會為您建立 Webhook。請使用您在上一個步驟取得的 CI_CD_URL,在您的容器登錄中建立 Webhook。
az acr webhook create --name appserviceCD --registry <registry-name> --uri $cicdUrl --actions push --scope appsvc-tutorial-custom-image:latest
若要測試您的 Webhook 是否已正確設定,請偵測 Webhook,並查看您是否收到 200 OK 回應。
eventId=$(az acr webhook ping --name appserviceCD --registry <registry-name> --query id --output tsv) az acr webhook list-events --name appserviceCD --registry <registry-name> --query "[?id=='$eventId'].eventResponseMessage"
提示
若要查看所有 Webhook 事件的所有資訊,請移除
--query
參數。如果您要串流容器記錄,您應該會在 Webhook 偵測之後看到
Starting container for site
訊息,因為 Webhook 會觸發應用程式重新啟動。
VII. 瀏覽至 Web 應用程式
若要測試應用程式,請瀏覽至 https://<app-name>.azurewebsites.net
。 以您的 Web 應用程式名稱取代 <app-name>
。
第一次嘗試存取應用程式時,應用程式可能需要一些時間才能回應,因為 App Service 必須從登錄提取整個映像。 如果瀏覽器逾時,只需重新整理頁面即可。 提取初始映像後,會更快速地執行後續測試。
VIII. 存取診斷記錄
等候 App Service 提取映像時,將容器記錄串流至終端以查看 App Service 確切在做什麼將有所幫助。
開啟容器記錄:
az webapp log config --name <app-name> --resource-group msdocs-custom-container-tutorial --docker-container-logging filesystem
啟用記錄資料流:
az webapp log tail --name <app-name> --resource-group msdocs-custom-container-tutorial
如果您沒有立即看到主控台記錄,請在 30 秒後再查看。
您也可以在瀏覽器中的
https://<app-name>.scm.azurewebsites.net/api/logs/docker
檢查記錄檔。若要隨時停止記錄串流,請選取 Ctrl+C。
IX. 修改應用程式碼並重新部署
在本節中,您會變更 Web 應用程式碼、重建映像,然後將其推送至容器登錄。 App Service 接著會自動從登錄提取已更新的映像,以更新執行中的 Web 應用程式。
在您的本機 docker-django-webapp-linux 資料夾中,開啟 app/templates/app/index.html檔案。
變更第一個 HTML 元素以符合下列程式碼。
<nav class="navbar navbar-inverse navbar-fixed-top"> <div class="container"> <div class="navbar-header"> <a class="navbar-brand" href="#">Azure App Service - Updated Here!</a> </div> </div> </nav>
儲存您的變更。
變更為 docker-django-webapp-linux 資料夾並重建映像:
docker build --tag appsvc-tutorial-custom-image .
將映像的標籤更新為
latest
:docker tag appsvc-tutorial-custom-image <registry-name>.azurecr.io/appsvc-tutorial-custom-image:latest
以您的登錄名稱取代
<registry-name>
。將映像推送至登錄:
docker push <registry-name>.azurecr.io/appsvc-tutorial-custom-image:latest
映像推送完成時,Webhook 會通知 App Service 有此推送,然後 App Service 會嘗試提取更新的映項。 請稍候幾分鐘,然後瀏覽至
https://<app-name>.azurewebsites.net
以確認更新已部署。
X. 使用 SSH 連線到容器
SSH 可改善容器與用戶端之間的安全性通訊。 若要啟用與容器的 SSH 連線,您必須為其設定自訂映像。 容器執行後,您就可以開啟 SSH 連線。
設定 SSH 的容器
本教學課程中使用的範例應用程式已經具有 Dockerfile 中的必要設定,其會安裝 SSH 伺服器,並設定登入認證。 本節內容僅供參考。 若要連線到容器,請跳到下一節。
ENV SSH_PASSWD "root:Docker!"
RUN apt-get update \
&& apt-get install -y --no-install-recommends dialog \
&& apt-get update \
&& apt-get install -y --no-install-recommends openssh-server \
&& echo "$SSH_PASSWD" | chpasswd
注意
此組態不允許容器的外部連線。 SSH 只能透過 Kudu/SCM 站台提供。 Kudu/SCM 站台會向 Azure 帳戶進行驗證。
使用 SSH 時,不應該變更 root:Docker!
。 SCM/KUDU 會使用您的 Azure 入口網站認證。 使用 SSH 時,變更此值會導致發生錯誤。
Dockerfile 也會將 sshd_config 檔案複製到 /etc/ssh/ 資料夾,並在容器上公開連接埠 2222:
COPY sshd_config /etc/ssh/
# ...
EXPOSE 8000 2222
連接埠 2222 是供內部使用的連接埠,只有私人虛擬網路之橋接網路內的容器可以存取。
最後,輸入腳本 init.sh 會啟動 SSH 伺服器。
#!/bin/bash
service ssh start
開啟與容器的 SSH 連線
請瀏覽至
https://<app-name>.scm.azurewebsites.net/webssh/host
並以您的 Azure 帳戶登入。 以您的 Web 應用程式名稱取代<app-name>
。登入之後,系統會將您重新導向至 Web 應用程式的參考頁面。 選取頁面頂端的 SSH,以開啟殼層並使用命令。
例如,您可以使用
top
命令來檢查在應用程式內執行的程序。
XI. 清除資源
您在本文中建立的資源可能會持續產生費用。 若要清除資源,您只需要刪除包含這些資源的資源群組:
az group delete --name msdocs-custom-container-tutorial
下一步
您已了解如何︰
- 將自訂映像部署到私人容器登錄中。
- 在 App Service 中部署自訂映像。
- 更新和重新部署映像。
- 存取診斷記錄。
- 使用 SSH 連線到容器。
- 將自訂 Docker 映像推送至 Azure Container Registry。
- 將自訂映像部署至 App Service。
- 設定環境變數。
- 使用受控識別將映像提取至 App Service。
- 存取診斷記錄。
- 從 Azure Container Registry 對 App Service 啟用 CI/CD。
- 使用 SSH 連線到容器。
在下一個教學課程中,您會了解如何使用自訂網域和憑證為您的應用程式提供安全性。
或者,查看其他資源: