Docker Retrospective: July 2017
Here's my monthly roundup of all things Docker, with a heavy slant on Windows.
I spent a chunk of time working with the Docker EE 17.06 release, testing out the .NET sample app and some very old WebForms apps. It's pretty cool when you can migrate apps from a Windows Server 2003 VM with Image2Docker and run them in Windows 2016 containers on an enterprise-grade CaaS platform - with no code changes.
Here's the other news.
Weekly Windows Dockerfile
I've started a blog series, working through all the Dockerfiles in my book Docker on Windows and covering each one in depth. The goal is to make the source repo on GitHub and the images on Docker Hub useful, whether you've read the book or not.
This is the Weekly Windows Dockerfile, with four instalments so far:
#1: ch01-whale the 'Hello World' for Docker Windows containers, showing an ASCII art picture of a whale :)
#2: ch01-az an example running Microsoft's new Azure CLI
azin a Windows container
#3: ch02-powershell-env a simple image which writes out environment variables, used to show different ways of running containers
#3: ch02-dotnet-helloworld a basic .NET Core app packaged in a Docker image, where the app is compiled as a step in the Dockefile.
There are 48 more to come.
I was at the Cloud+Data Next conference in Santa Clara, presenting on diverse workloads - Windows and Linux containers running in a single Docker swarm.
Being able to run a mixed workload opens a whole lot of possibilities. You can add Redis or Nginx to a .NET Framework solution, and have the .NET bits running in Windows containers, talking with OSS bits running in Linux containers.
You start, stop, upgrade and manage all those pieces in the same way, so you can choose the best components for your solution without adding admin overhead.
This was similar to the session I gave at...
Which was recorded, and the video is out now:
The Hybrid Docker Swarm: Mashing Windows and Linux Apps with Containers - Elton Stoneman from NDC Oslo.
In that session I have a Docker swarm running with a mixture of Linux and Windows nodes. I use the Newsletter sample app for the demos, and start with all the components running in Docker Windows containers. Then I gradually migrate NATS, Elasticsearch, Kibana and - yes - SQL Server to Docker containers running on Linux.
The app keeps running throughout the deployments, with no downtime (except in the last demo, where I swap out the database. And even then it's only for a few seconds).
Next month I'll be publishing my YouTube series on modernizing .NET apps with Docker.
This will be a five-part series focused on IT Pros. I'll be moving a .NET 3.5 app from a Server 2003 VM to Docker, and demonstrating what staging and production look like, all without touching code. There will be a follow-up series looking at the dev side of app modernization.
I also have a couple of speaking gigs in the UK:
Microsoft Data Platform Group, Birmingham. I'll be looking at SQL Server on Docker, covering the different ways to run databases in containers and the usage for dev, test and production
TechUG, Glasgow. I'll be looking at what Docker can do for traditional applications, and what modernizing traditional apps actually means.
Also I'm looking forward to visiting some old colleagues, to help with getting their app running in Docker.