1. Home
  2. Training Library
  3. Microsoft Azure
  4. Courses
  5. Getting Started with Azure App Service

App Service Docker Container Overview

Start course
1h 22m

You’ve got an idea for a great web app, or maybe you’ve already started building it. The next question is how are you going to get it out there on the Internet?

In this course, you will learn how you can quickly and easily set up a website and publish your app to the world with Azure App Service. Of course, web apps are a lot more complex and varied than just HTML pages and we will see how App Service supports a range of programming languages, frameworks, and even operating systems. We will explore features that greatly simplify application deployment and management, as well as those that will increase your app’s functionality like authentication and accessing on-premise data. App Service as with other Azure products has a raft of tools for monitoring and logging so you can make sure your app is performing optimally.

For any feedback, queries, or suggestions relating to this course, please contact us at support@cloudacademy.com.

Learning Objectives

  • Deploy apps using the Azure App Service
  • Create a web app using the Azure Portal
  • Create a web app using Visual Studio
  • Understand the configuration and diagnostic capabilities available from Azure App Service
  • Understand the advanced features of the service such as container deployment and deployment slots

Intended Audience

This is a beginner level course suited developers or anyone wanting to know how to deploy web apps to the Azure cloud.


To get the most from this course, you should have a basic understanding of the software development lifecycle, while knowing how to code would be a plus.

Course source code

.NET 5.0 demo code



Docker Hub



.NET Core 3.1 demo code






For those of you unfamiliar with Docker containers, I'll start with the briefest of overviews. As the term container implies, a docker container is a self-contained environment that your app runs in, so you don't have to worry about infrastructure and operating system anomalies. A container has all the supporting libraries that your app needs to function. Containers could be viewed as a continuation and extension of the Java virtual machine or .Net concept. Both of these software frameworks' central tenants were to help standardize dependencies and isolate code from environmental vagaries. It would be fair to say that, for .Net at least, it hasn't been 100% successful. Of course, containers are operating system and language agnostic which makes them very versatile. Unlike virtual machines, containers don't include the operating system, so they are relatively lightweight and quick to load. This makes them suitable for microservices architecture, and this has no doubt helped their adoption.

Containers can exist outside of development and deployment in dedicated container storage often referred to as registries. Having said that Docker calls their storage Docker Hub. Azure offers Linux and Windows containers and supports deploying containers from Azure Container Registry, Docker Hub, and private registries.

We'll start by creating an Azure container registry resource to store the container that the app will deploy within. When we create the application within Visual Studio, we'll specify what sort of container to use. In our case, we'll run the app in a Linux container. Visual Studio takes care of the container definition for us, but if you want to see what it looks like, open the Dockerfile with no file extension in the project's root directory. Instead of publishing the app directly to the Azure App Service, it is published, along with the container image, to our container registry. The app is then deployed automatically from the container registry to the app service. There is little to be gained from deploying a standard app with a standard image over a typical app service deployment. The advantage is when your container image includes third party or additional software for your app to run correctly.

Conceptually speaking, we have an image sourced from a container library. The image is combined with our application courtesy of Visual Studio and saved to our registry. From the registry, the image containing our app is deployed to the app service. Before we deploy our containerized app from the Azure Container Registry, we'll deploy a container from Docker Hub.

About the Author
Learning Paths

Hallam is a software architect with over 20 years experience across a wide range of industries. He began his software career as a  Delphi/Interbase disciple but changed his allegiance to Microsoft with its deep and broad ecosystem. While Hallam has designed and crafted custom software utilizing web, mobile and desktop technologies, good quality reliable data is the key to a successful solution. The challenge of quickly turning data into useful information for digestion by humans and machines has led Hallam to specialize in database design and process automation. Showing customers how leverage new technology to change and improve their business processes is one of the key drivers keeping Hallam coming back to the keyboard.