ASP.NET Core on Docker in Azure

This is a series of posts providing a step by step guide on creating a ASP.NET Core web app, then creating a Docker host in Azure to run it, finally publishing and running your ASP.NET app as a Docker image & container. I’ve split this into three sub-posts to keep it manageable & readable.

You do not need Windows  or Visual Studio for this exercise (welcome to the new Microsoft!), all tools used are open source and multi-platform, I’ll be using Windows for basic convenience. Naturally the Docker host will be on Linux.

The three parts are pretty much independent. If you already know ASP.NET Core or have an existing app you can skip part 1. If you already have a Docker host running somewhere (maybe not in Azure, heaven forbid!) then skip ahead to part 3.

You will need an Azure subscription for part 2, you can get a free subscription with $25 per month of credit via ‘Visual Studio Dev Essentials

Running your ASP.NET Core app in Docker

Final part of a series covering some of the fundamentals of ASP.NET Core, Docker and Azure. This part is fairly dependent on what we covered in part 1 and part 2. However if you want to skip ahead you can use my pre-created ASP.NET Core demo app on Github; https://github.com/benc-uk/dotnet-demoapp which you can clone and use to skip what was covered in part 1.
However we’re going to need a running machine with Docker engine on so skipping part 2 isn’t really an option

Read more Running your ASP.NET Core app in Docker

Docker Machine and Azure

Part 2 of a basic series covering ASP.NET, Docker and Azure. This part is independent of what we did with ASP.NET in part 1, and serves as a guide on getting Docker running in Azure. I’m not going to cover the basics of Docker or an introduction into why containerization is a Good Thing™ there’s a million other posts & articles out there on those topics

Docker on Azure

As you might imagine we have a wide range of options when it comes to using Docker on the Azure platform, the main approaches are:

  • Docker compute instances. e.g. Docker on Ubuntu Server available in the Azure Marketplace. This boils down to a VM with Docker Engine pre-installed. A bit simple but great for experimenting with what Docker can provide.
  • Docker VM Extension. This is a neat way of deploying Docker onto any Linux VM you create in Azure. This works particularly well when you are dealing with ARM templates letting you automate the whole process in an IaaC approach.
  • Azure Container Service (ACS). This allows you to deploy a managed Docker cluster in Azure, using a choice of DC/OS or Docker Swarm to provide orchestration and clustering. This is great for production workloads, but a little overkill for what we need.
  • Windows Server 2016. What? Docker on Windows? Well yes we’ve had Docker support on Windows for a while but it’s been a bit of a cludge using Hyper-V and a hidden VM running behind the scenes. Yuk. However Windows Server 2016 brings real, native Docker container support to Windows.
  • Azure Docker Machine Driver. Docker Machine is a great tool for managing, deploying and controlling remote Docker hosts. It’s a lightweight, command line based system which we’ll focus on in the rest of this post

Read more Docker Machine and Azure

Build your first ASP.NET Core web app

This is a very simple tutorial and 101 guide on getting an ASP.NET Core web application up and running. We’re starting from first principles, and we won’t get very deep into the vast world of ASP.NET, so you won’t find any details on topics like MVC, Routing or Entity Frameworks here. Our goal is to get a very simple web app & server running on your Windows/Linux/OSX machine

Read more Build your first ASP.NET Core web app