Running .NET core apps in Docker

Due to the multi-platform nature of .NET core it is now incredibly easy to run your .NET core apps on many platforms including Linux and by extension Linux containers, such as Docker.
Docker allows for the easy distribution, hyper portability and simple scalability of your software.

Docker, and other containerisation platforms, provide an easy to use interface for deploying and management. Unlike the old model of having a virtual machine for individual virtual machines for each piece of software, containers are much more light weight and incredibly portable allowing you to duplicate instances with minimal work. This can also make the backing up of instances an incredibly simple process as you are able to easily duplicate mounted volumes before making major changes and can schedule backups so that you are easily able to roll back by simply replacing a folder with an older copy.

Containerisation also maintains the security benefits that you get with virtual machines, by being able to isolate the software and only the bare minimum dependencies required to run said software you are able to greatly reduce the attack surface for each container. Also, you have the benefit that if a container is compromised then it wont have an effect on the host system as the containers storage is limited to specified directories. For more information on docker and containers, visit Docker.

There is also the ability with the use of container orchestration tools, such as kubernetes, to create highly available and highly scalable deployments. In essence Kubernetes, is an open-source system for automating deployment, scaling, and management of containerised applications and it groups containers that make up an application into logical units for easy management and discovery.

Also, with kubernetes having large corporate backing from companies such as Google its development is highly active and has various channels for support. For more information on Kubernetes, visit the Kubernetes site.

So, with .NET core apps being easily run within such containers it means that you are able to make the most of such useful features with little to no extra development.
For examples on how to do this with your own software see Microsoft’s Docker Hub and GitHub pages.