Docker Containers and Windows

Docker Containers

So for many students containers are a new learning opportunity and experience. Having new and modern skills is great to addition to your CV. Some students may be already using containers in personal, hobby projects or even academic assignments.

The following blog has been produced with Elton Stoneman Developer Advocate @docker. Microsoft MVP. Pluralsight Author. see https://blog.sixeyed.com/ for more details on Elton adventures with containers.

image

Containers are a new way of running applications.

You don't need Azure Cloud to try out Docker. you can install Docker on your personal machine and run all your apps in lightweight, isolated units - called containers.

image

Inside the container your app thinks it's running on a normal server, but actually it's sharing the operating system of the host.

This means that all containers share the host's operating system. There's no expensive virtualization layer like you have with VMs, so Docker containers are very efficient. Your app has practically zero performance impact from running in a container, but a server which could run maybe a dozen VMs could run hundreds of containers (and you only need one Windows licence for the server).

Docker containers on Windows

Docker containers all have the same shape. You can be running a Java app in one container, a NodeJS app in another and a .NET Framework app in a third. You package, distribute, run and administer all those apps in the same way. They're isolated from each other so you get increased security, but you can run containers in a virtual network so they can access each other, and they can access existing non-Dockerized services.

Can Student use Containers?

Yes, Here is an example of a infrastructure which has been built by a student project at Imperial College London.

imageAs you can see all the services are hosted and operated with containers which are running on Azure.

Companies are looking to Docker and for people with Docker skills to help them run their applications more efficiently and more securely, or to power their move to the cloud. Administrators are looking to Docker to make the deployment and management of applications faster, safer and more consistent. Developers are looking to Docker to modernize traditional applications, breaking down monoliths with a free choice of tech stack.

So why should you care?

Docker is simply a platform it allow you to run new and existing apps

You don't have to change your application to run it in Docker. Docker is great for underpinning digital transformations -like the transition to DevOps, or the move to the cloud, or microservice architectures. But the immediate value of Docker is in modernizing traditional applications:

You can move an app like that into Docker in a couple of days. When you're done you'll have your old app running in a modern platform. Releases are automated, and what you release in production is the exact same thing you've tested in other environments. You can start breaking key features out of monolithic codebases and running them in separate containers, which means you can release upgrades more frequently. Docker is transforming how people do IT! Elton Stoneman

Docker and Windows

Docker on Windows. You can run Docker on Windows 10 and Windows Server 2016, and you can Dockerize pretty much any server application - from a greenfield .NET Core Web API to a 10-year old ASP.NET Framework WebForms app.

Getting started is easy. Install Docker for Windows, run Image2Docker to extract an existing app from a Windows server into Docker, and start modernizing.

image

Elton did a webinar covering Docker on Windows - from 101 to Modernizing .NET apps which will get you going with the basics:

Want to learn more?

Elton has just released  a book which includes everything you need to start running your Windows apps in Docker.

From the basics to deploying in a scalable, highly-available production environment.
How security works in Docker
How to add monitoring to Dockerized apps,
How to run CI/CD with Docker
How to develop and debug in containers
How to administrate Docker
Production
Container-first solution design
Guidance for implementing Docker in your own projects.

imageGet Docker on Windows and go Dockerize!