Guest suzarilshah Posted May 29 Posted May 29 Learn how to host images on Azure Container Registry and deploy a Web App via the App Service plan. A step-by-step guide by Suzaril Shah Welcome to my latest blog post! I'm Suzaril Shah, a Gold Microsoft Learn Student Ambassador, and today I'm excited to share a detailed, step-by-step guide on how to efficiently host your images on Azure Container Registry (ACR) and deploy a web application using an App Service plan. Whether you're a developer, IT professional, or just a tech enthusiast looking to expand your Azure knowledge, this guide is designed to walk you through the process seamlessly. From setting up your ACR to deploying your app, I'll cover all the necessary steps and best practices to ensure you can get your web app up and running with ease. Let's dive in and start deploying on Azure! [HEADING=1]Prerequisites:[/HEADING] Azure CLI Steps to install Azure CLI [*]Azure subscription If you don’t already have one, you can sign up for an Azure free account. For Students, you can use the free Azure for Students offer which doesn’t require a credit card only your school email. [HEADING=1]Step 1 - Prepare the Docker Container[/HEADING] For this demonstration, I cloned this Docker Hub Image and tagged the image to my own Docker Hub account. This image particularly contains web pages, which is useful to display that the web app is served and accessible via the internet. However, if you have your own Docker image, feel free to use them. [HEADING=1]Step 2 - Setting the Container Registry on Azure[/HEADING] Go to Azure Portal (portal.azure.com) and search for “Container Registries” on the Search bar and click on it. Create a new registry by clicking on the “+ Create” button. Select your Subscription and Resource Group from the dropdown and name your registry. Click on “Next >” button until you have reached the “Review + create”. Click on “Create” button to finalize the registry creation. Once the Deployment is complete, click on the “Go to resource” button to view the registry. At this point the registry is ready to store the image in the registry. [HEADING=2]Enable Admin user on the Azure Container Registry[/HEADING] Each container registry includes an admin user account, which is disabled by default. You can enable the admin user and manage its credentials in the Azure portal, or by using the Azure CLI, Azure PowerShell, or other Azure tools. The admin account has full permissions to the registry. To enable Admin user, you can go to the container registry page you have created earlier and head to “Settings” > “Access Keys” subsection. Click on the checkbox for “Admin User”. Two passwords should be generated. [HEADING=1]Step 3 - Push image to Azure container registry from Docker Hub[/HEADING] On the Azure Container Registry page, click on the “Push an Image” button to get started with the hosting the image on Azure registry. Follow the instructions given on Azure to login, pull & tag image to ACR and push the image to the Azure registry. [HEADING=2] Login to Azure on a CLI.[/HEADING] [iCODE]az login[/iCODE] Upon logging in to Azure via CLI, you should be redirected to complete browser authentication and see this page: Now login to your Azure Container registry [iCODE]az acr login --name [REGISTRY_NAME][/iCODE] You should receive an output resembling the following: az acr login --name suzarilshah Login Succeeded [HEADING=2] [/HEADING] [HEADING=2]Pull the image on Docker Hub and tag the image to ACR.[/HEADING] Now pull an image to your host machine so we can prepare and host them on Azure Container Registry. In this case, I will use the image in Step 1. docker pull airilshahz/apptest Using default tag: latest latest: Pulling from airilshahz/apptest 59bf1c3509f3: Pull complete 683dd8c3cc08: Pull complete ae5b2724f19b: Pull complete 39190df3f477: Pull complete dd3448b85aa1: Pull complete d73408ac8b5c: Pull complete 26a6466d7ac5: Pull complete 3db399cf7250: Pull complete Digest: sha256:249cb92c030c02d5a13b1beef894c306e77aa82e6847e7fc04d2ec46f8306579 Status: Downloaded newer image for airilshahz/apptest:latest docker.io/airilshahz/apptest:latest What's Next? View a summary of image vulnerabilities and recommendations → docker scout quickview airilshahz/apptest Let’s tag the image following the tag format: [REGISTRY_ENDPOINT/REPOSITORY/IMAGE]. You can find the Registry Endpoint at the ACR Overview page (Login server) [iCODE]docker tag airilshahz/apptest suzarilshah.azurecr.io/webapp/apptest[/iCODE] [HEADING=2] [/HEADING] [HEADING=2]Push the Image on Azure Container Registry[/HEADING] docker push suzarilshah.azurecr.io/webapp/apptest Using default tag: latest The push refers to repository [suzarilshah.azurecr.io/webapp/apptest] 177b596a6349: Pushed 9707d450e65b: Pushed 5bcf0d6dff6a: Pushed 1b6b342bd971: Pushed 49281578ca1a: Pushed c833154f20e9: Pushed 5be440dc5019: Pushed 8d3ac3489996: Pushed latest: digest: sha256:249cb92c030c02d5a13b1beef894c306e77aa82e6847e7fc04d2ec46f8306579 size: 1998 Now you have an image stored on Azure Container Registry. You can check the image you pushed on ACR by going to the “Services” > “Repositories” section on the ACR page. [HEADING=1]Step 4 - Deploy the Image to App Service from ACR[/HEADING] Head to “App Service” by searching for them on the Search bar on Azure portal. Click on the “+ Create” > “Web App” button to create a Web App. Select Subscription from the drop down menu and specify the resource group. Then, name your web app endpoint. Follow the configuration as specified below. Please ensure that you have selected “Container” for the “Publish” configuration. Create a new Linux Plan under the “Pricing plans” section. For this demonstration, I will use the Free tier to host my web app. Then, click on Next to proceed with creating the web app. On the “Container” tab, make sure to Select “Azure Container Registry” as the Image Source. Select the Registry you have created earlier and specify the Image and Tag. On the “Networking” tab, please make sure to turn on the “Enable public access” settings. This ensures that our web app is accessible to everyone on the Internet. Turn this off, if you do not intend to allow external users to access your web app. Click on the “Review + create” button to finalize the Web App configuration. Click on “Create” button to deploy the web app. After the Web App is deployed successfully, click on the “Go to resource” button to view the Web App overview page. To view your Web App, click on the “Browse” button on the Web App overview page or copy and paste the information from the “Default domain” section to access your web app. Voila! The Web App is now accessible on the Internet. [HEADING=2] Learning takeaways[/HEADING] This comprehensive guide provides a detailed walkthrough on using Azure Container Registry (ACR) and Azure App Service to host and deploy web applications. Readers should be able to set up ACR, host images to ACR, and deploy the images hosted on ACR via App Service. This tutorial not only enhances technical skills in managing cloud-based applications but also offers practical insights into integrating and leveraging Azure services to publish applications on the internet. Continue reading... Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.