
Introducing Docker for Windows Server 2016 - samber
https://blog.docker.com/2016/09/dockerforws2016/
======
friism
Post author here: people at Docker and Microsoft have worked on this for
years. More to come during the day, also happy to answer any questions here.

~~~
skrowl
Will this work on Windows Home editions (that ship on almost every laptop you
buy at MicroCenter / Best Buy / etc) or will it require Pro versions because
it has some underlying dependency on Hyper-V?

~~~
NetStrikeForce
I guess the "for Windows Server 2016" part answers the question :) however you
might be asking about Docker for Windows, which seems to be a different thing?

~~~
skrowl
Did you even read the article before you posted your snotty retort?

> The kernel containerization features are available in all versions of
> Windows Server 2016, and are also on --> _Windows 10 systems with the
> Anniversary Update_ <\--, and the Windows-native Docker daemon runs on both
> Windows Server 2016 and --> Windows 10 <\-- (although only containers based
> on Windows Server build and run on Windows 10).

~~~
NetStrikeForce
No, I didn't.

However, it wasn't my intention to come across as snotty - I thought you might
just missed the title, which isn't something unheard of :-)

I'm sorry if you felt I had a conceited attitude, that's not how I behave.

------
mkane848
I currently have a Django-based intranet site (Windows Server 2012 w/ MSSQL
DB) and will also have a web-app with the same set-up - both will be for
company-use only, so at most ~500 users for the intranet and significantly
less for the web app.

As a single dev doing smaller scale projects, is there any reason for me to
want to move to this sort of setup? I obviously keep my project version
controlled on Bitbucket and we run our usual backups on the servers and DBs,
but is there something that Docker would bring that I'm just not getting? Or
is this better suited for larger scale, super-fast iteration type projects?

~~~
tracker1
It helps with TDD, automation and Scaling.. it also keeps your dependencies
separately... you can upgrade your platform for one app, without having to
upgrade for all apps.

Server utilization for one-off apps is a lot better too as you can use a
single windows server and have multiple containers... also checkout
Application Request Routing extension for IIS, which is helpful for this kind
of setup, it acts as a reverse-proxy option for IIS.

What will probably come next will be more automation tooling... It should now
be possible to crate something like dokku, but using windows containers and
powershell.

\-- edit: s/not/now above.

------
mhodgson
Is it the case that 'Docker for Windows Server 2016' can only run Windows
containers and 'Docker for Windows' can only run Linux containers? If so, is
there any plan for a solution that can run both side by side?

The reason I ask is because it would be useful, especially on dev machines, to
be able to run existing full .NET apps in containers alongside linux
containers with Postgres, Redis, etc.

~~~
friism
The public beta version (which has all the latest and greatest) has support
for Windows containers too: [https://stefanscherer.github.io/run-linux-and-
windows-contai...](https://stefanscherer.github.io/run-linux-and-windows-
containers-on-windows-10/)

------
statictype
So if I have a asp.net Mvc app on IIS backed by sql server express and some NT
services. I can package them into a container?

~~~
friism
Yes, it works great!

I built a sample with MusicStore. It doesn't use ISS (but could), just a self-
hosting ASP.NET Core MVC app:
[https://github.com/friism/Musicstore/](https://github.com/friism/Musicstore/)

You might find the SQL Server Dockerfile interesting (hopefully it'll be an
image on Hub soon):
[https://github.com/friism/MusicStore/blob/master/docker/mssq...](https://github.com/friism/MusicStore/blob/master/docker/mssql-
server-2016-express/Dockerfile)

Here's now to run it:

    
    
        docker build -t sqlserver:2016 -f .\docker\mssql-server-2016-express\Dockerfile .\docker\mssql-server-2016-express\.
        docker-compose -f .\src\MusicStore\docker-compose.yml up
    

Open a browser and open [http://<ip-of-vm-running-docker>:5000/](http://<ip-
of-vm-running-docker>:5000/)

IIS runs in both nanoserver and windowsservercore-based containers. Here's and
IIS sample image (I suspect Microsoft will be updating it soon):
[https://hub.docker.com/r/microsoft/iis/](https://hub.docker.com/r/microsoft/iis/)

~~~
friism
Here's a blog post: [https://blog.docker.com/2016/09/build-your-first-docker-
wind...](https://blog.docker.com/2016/09/build-your-first-docker-windows-
server-container/)

------
markbnj
This is pretty interesting stuff, but a 10GB base image? Granted its a base
and you don't have to push it often, but in my experience pull times to
container hosts end up being a big part of overall deployment cycle time, and
pulling 10GB to a new host during a scaling event sounds not so fun. In our
container development we'll rely on alpine where possible because it brings
image sizes down from, say 100-200MB with ubuntu to 10-20MB.

~~~
friism
Since all your containers will be based on `windowsservercore` (and perhaps
some on the much smaller `nanoserver` base image), you could choose to bake
the image into your container host image.

------
okhudeira
This is exciting news for all .NET folks. We're running our Platform in .NET
on AWS, so we'll need to wait for AWS to support Windows Server 2016 before we
can leverage Docker.

For Windows Server 2012, AWS supported it [1] a little under 2.5 months after
release [2].

1: [https://aws.amazon.com/blogs/aws/windows-server-2012-now-
ava...](https://aws.amazon.com/blogs/aws/windows-server-2012-now-available-on-
aws/)

2:
[https://en.wikipedia.org/wiki/Windows_Server_2012](https://en.wikipedia.org/wiki/Windows_Server_2012)

------
PaulKeeble
I hope it works. I have had nothing but issues with the release version of
Docker, it keeps dropping and messing with the network connection on the
machine requiring restarts.

Last year a lot of people warned me that the technology was pretty unreliable
and using this year for development work I tend to agree, its still bleeding
edge.

~~~
friism
If you have details on the problems you've had, feel free to drop me a line at
michael.friis@docker.com

------
hacknat
Is full sql server containerizable? If so, how would it work?

~~~
friism
Express works fine listening on TCP. While I haven't tried I don't see any
reason it wouldn't work. And I've see the full SQL Server running in a Linux
Docker container :-)

~~~
hacknat
Yeah, I'd heard that was possible. Is it because the SQL server team
abstracted their system calls?

~~~
snuxoll
They did more than abstract their own system calls, Microsoft SQL Server
essentially runs it's own OS, aptly named SQLOS.

~~~
notsentient
That's not true, SQLOS is not a wrapper for system calls or another OS running
on-top of a host platform. It's more of a resource/synchronicity/management
layer: [http://blog.sqlauthority.com/2015/11/11/sql-server-what-
is-s...](http://blog.sqlauthority.com/2015/11/11/sql-server-what-is-sql-
server-operating-system/)

------
CSDude
It would be great when we can run Exchange and other internal tools we have as
containers.

------
faragon
Any Docker for running IE8 on Windows-2012 and later?

~~~
tracker1
It seems they don't include the GUI parts, also, you can't run IE8 on windows
later than Vista (iirc), it's fully deprecated at this point, and you're
probably best off ignoring it.

~~~
faragon
You can, with e.g. ThinApp, but with some issues. That was the reason of my
question: if Docker could increase compatibility in that regard.

~~~
jstarks
Right now we're focused on server workloads only.

