As mentioned in other posts about Docker, Docker is talk of the town. Docker is a containerization platform which fully lives up to it's motto - "Build, Ship, and Run Any App, Anywhere".
Docker containers provides an additional layer of abstraction on top of virtual machines we're familiar with. Simply put, Docker is a tool that can package an application and it's dependencies in a virtual container that can run on any server (Linux or Windows). This capability gives freedom from underlying operating system constraints and no longer can we say "It works on my machine!".
New kid on the block ASP.NET Core provides first class Docker support owing it's inherit capability for cross-platform code.
Visual Studio 2017 supports tooling for adding Docker support for brand new .Net Core Apps or existing .Net Framework apps. You may ask can we run existing Full .Net Framework apps on Docker? We can safely yes if your were to choose Windows containers.
We must be living in an age of innovation. No time is better than now where we have fairly stable .NET Core 2.0 standard, matured .Net Core stacks (EF Core, ASP.NET Core 2.0) and a feature rich Docker support (did I say about multi-stage deployments).
If you're from .Net school, you may be looking for a perfect tutorial to dip your toes into Docker world using .Net Core, we can happily recommend perfectly written, very detailed and any .Net programmer can get it.
Excellent blog post by Maher Jendoubi on ASP.Net Core 2.0 in Docker is an excellent place to begin your Docker journey with .Net Core stack.