Do you want to try out Windows containers, but don't want to start too low level? If you are using one of the following programming languages you can benefit of already available official Docker images for Windows.
These Docker images are well maintained and you can just start and put your application code inside and run your application easily in a Windows container.
Someone else did the hard work how to install the runtime or compiler for language XYZ into Windows Server Core container or even a Nanoserver container.
Prefer NanoServer
So starting to work with NanoServer is really easy with Docker as you only choose the right image for the FROM
instruction in your Dockerfile
. You can start with windowsservercore images, but I encourage you to test with nanoserver as well. For these languages it is easy to switch and the final Docker images are much smaller.
So let's have a look which languages are already available. The corresponding Docker Hub page normally has a short intro how to use these Docker images.
Go
The Go programming language is available on the Docker Hub as image golang
. To get the latest Go 1.8 for either Windows Server Core or NanoServer you choose one of these.
FROM golang:windowsservercore
FROM golang:nanoserver
Have a look at the tags page if you want another version or if you want to pin a specific version of Golang.
Java
When you hear Java you might immediately think of Oracle Java. But searching for alternatives I found three OpenJDK distros for Windows. One of them recently made it into the official openjdk
Docker images. Both Windows Server Core and NanoServer are supported.
FROM openjdk:windowsservercore
FROM openjdk:nanoserver
If you prefer Oracle Java for private installations, you can build a Docker image with the Dockerfiles provided in the oracle/docker-images repository.
Node.JS
For Node.js there are pull requests awaiting a CI build agent for Windows to make it into the official node
images.
In the meantime you can use one of my maintained images, for example the latest Node LTS version for both Windows Server Core and NanoServer:
FROM stefanscherer/node-windows:6
FROM stefanscherer/node-windows:6-nano
You also can find more tags and versions at the Docker Hub.
Python
The script language Python is available as Windows Server Core Docker image at the official python
images. Both major versions of Python are available.
FROM python:3-windowsservercore
FROM python:2-windowsservercore
I also have a Python Docker image for NanoServer with Python 3.6 to create smaller Docker images.
FROM stefanscherer/python-windows:nano
.NET Core
Microsoft provides Linux and Windows Docker images for .NET Core at microsoft/dotnet
. For Windows it is NanoServer only, but this is no disadvantage as you should plan for the smaller NanoServer images.
FROM microsoft/dotnet:nanoserver
ASP.NET
For ASP.NET there are Windows Server Core Docker images for the major versions 3 and 4 with IIS installed at microsoft/aspnet
.
FROM microsoft/aspnet:4.6.2-windowsservercore
FROM microsoft/aspnet:3.5-windowsservercore
Conclusion
The number of programming languages provided in Windows Docker images is growing. This makes it relatively easy to port Linux applications to Windows or use Docker images to distribute apps for both platforms.
Haven't found an image for your language? Have I missed something? Please let me know, and use the comments below if you have questions how to get started. Thanks for your interest. You can follow me on Twitter @stefscherer.