
Docker and Microsoft partner to drive adoption of distributed applications - julien421
https://blog.docker.com/2014/10/docker-microsoft-partner-distributed-applications/
======
amarraja
This is hands down the best news I have heard in the MS development space in a
long long time.

We have 3 apps over 32 servers and 5 environments, and operationally it's like
pulling teeth. This has the chance to change everything!

~~~
tbrock
What about windows 10 actually having a usable console with features such as
selecting text and line wrapping?

~~~
roghummal
Win10 includes a terminal that has text selection and line wrapping?

This changes everything!

~~~
lstamour
What's next? Tabs? (I wish...)

------
nickstinemates
Nick Stinemates @ Docker here. I run BD/Tech Alliances. A lot of blood and
sweat went in to this one! I'm here to answer any questions you may have about
the announcement, the details, or anything about Docker.

~~~
eik3_de
are you working with Apple to bring native docker to that platfrom?

~~~
enos_feedler
I really hope the Microsoft partnership does put some pressure on Apple to
provide this support as well. But it just feels like something that isn't
really their style. While having software components appear like "just another
container" is great for developers, its very anti-Apple. They don't view the
iphone as "just another smartphone". Everything Apple is standout/special in
some way. I hope I am wrong though because I love Docker and would welcome
this with open arms.

~~~
nickstinemates
Outside of the frame of talking about partnerships but talking as an
apple/Docker fan, Docker running on ios would be awesome

~~~
23david
you mean on osx, right?

~~~
nickstinemates
Nope, I meant ios :)

~~~
enos_feedler
I suppose "open arms" is now a pun then :)

~~~
nickstinemates
:)

------
jimmcslim
Also announced by Microsoft:

[http://news.microsoft.com/2014/10/15/DockerPR/](http://news.microsoft.com/2014/10/15/DockerPR/)

"Microsoft Corp. and Docker Inc., the company behind the fast-growing Docker
open platform for distributed applications, on Wednesday announced a strategic
partnership to provide Docker with support for new container technologies that
will be delivered in a future release of Windows Server."

I strongly suspected that Windows Server vNext would have some sort of
'container' support after the wild success of Docker.

~~~
UnoriginalGuy
Frankly I don't see this working unless Windows Server has MUCH better support
for IO and Network prioritisation than it does today.

You can set a process's CPU schedule, you can also set it to a "background"
priority which reduces both its CPU and IO to the lowest, but you don't really
have fine-tune control of how much IO/Network a process has (irrespective of
CPU).

This means on Windows in general it is very easy for a single process to run
away with all of the machine's IO and there isn't a lot you can do about it
except killing the process (I've seen backup clients, anti-virus scanners, etc
do this).

It wouldn't be as big of a problem on Linux because first off the IO scheduler
seems to be better, but even if it wasn't you can go in and manually configure
a process's maximum throughput in a bunch of different ways.

If Windows didn't support this then what is stopping a single Windows-Docker
container from stealing all of the system's IO or network capacity?

~~~
monstermonster
The recommended way of doing this is to use Hyper-V and multiple VMs. Windows
VMs start _very_ fast on Hyper-V.

That gives you virtual LAN bandwidth control, "Storage QoS" (IOPS limits),
partitioning, affinity and CPU limits. Not only that you have virtual SAN and
network fabric. It's pretty awesome!

If you utilise it by deploying your app to a .wim file and then use wim2vhd
and fart it at a Hyper-V host, docker already exists on Windows so I'm not
sure what all the fuss is.

Yes we do this.

~~~
omh
Unfortunately you need a Windows license per VM.

I guess that at many places you'd just buy datacenter edition, but that's a
bit too much for small businesses.

~~~
peschkaj
If you're using Hyper-V, you get an unlimited number of guests if you've
purchased Windows Server Enterprise Edition. Last I checked, it's not even
that expensive of an upgrade.

------
Rapzid
Reading the comments, this is the official announcement of the bifurcation of
the docker ecosystem. This completely shatters docker's original promise of a
universal application container. Now we will have standard gauge cars that
won't run in the South. Maersk containers that can't be shipped on MSC.

Congratulations to MS though, I think this is a good initiative. Not sure why
you even need a partnership with docker TBH as they didn't create the
underlying OS technologies that make containerization possible on Linux.. But,
with the acquisition of Mojang it is apparent MS is placing a lot of emphasis
on acquiring mind share.

~~~
cypher543
They didn't create the underlying technologies for containerization on
Windows, either. Docker is just providing compatibility with the new container
API in Windows Server so that you can use the same tools regardless of the OS.
It's no different from what they already do, which is wrap the LXC API.

------
micah_chatt
Theoretically I'm guessing this could enable multi-platform gaming? Ex:
"Download this docker image, and play our game: Windows or Linux, or
boot2docker Mac!"

Secondary, a native Darwin Docker server would be killer.

The mobile implications could be huge if this made it out of Windows Server.

~~~
SEJeff
Very very doubtful. You will not be able to run ELF (linux format) executables
on windows any more than you'll ever be able to run PE (windows format)
executables on Linux.

You'll have 2 hubs, the "windows hub" and the "linux hub".

~~~
nickstinemates
> You'll have 2 hubs, the "windows hub" and the "linux hub".

This is incorrect.

That said, it's true that Windows won't all of the sudden gain the ability to
run ELF.

~~~
SEJeff
Well I meant that in the sense that you can't run a windows app on Linux and
you can't run a Linux app on windows. Even if it is the same hub, you'd want
to filter "by windows" or "by linux" containers is what I meant.

Running boot2docker on windows is sort of cheating in that it is a virtual
machine running docker apps and this effort appears to be a native dockerd
running on Windows. Thoughts?

~~~
nickstinemates
I think the UX is slightly more nuanced.

From any machine, you should be able to `docker run` any application, and
docker will be smart enough to find (or create!) the best place run it.

The base pieces of the lego are currently in flight in Docker proper to enable
this, with great tools built around the Docker API for more advanced topics
(like clustering and scheduling)

> Running boot2docker on windows is sort of cheating in that it is a virtual
> machine running docker apps and this effort appears to be a native dockerd
> running on Windows.

I wouldn't say it's cheating. If your target is all linux machines, you need a
cheap, local, efficient way of developing and testing those applications.
Boot2Docker is an option (but not the only one - you could use a cloud
service, internal vm infra, etc. etc.)

Love the dialogue - keep it coming.

~~~
SEJeff
Ok so I read that as you saying:

If you're running docker on windows and you try to run a linux container, it
will magically start boot2docker and start your linux container inside that vm
if you are running on a windows box.

Now if that is true, my question would be: How do you boot2windows for windows
docker images when you can't freely distribute a windows vm?

As I think both being able to support both would be amazing, I don't see how
it fits into the current scheme of things.

~~~
nickstinemates
> If you're running docker on windows and you try to run a linux container, it
> will magically start boot2docker and start your linux container inside that
> vm if you are running on a windows box.

Maybe! Or you've used something like the new `docker hosts` feature, which
could create a new instance for you on any infrastructure provider. Or you
could be pointing to a boot2docker node, etc.

> Now if that is true, my question would be: How do you boot2windows for
> windows docker images when you can't freely distribute a windows vm?

I don't have a good answer for this, as we do not have a boot2windows product
or announcement (I assume this is the opposite case, if you have a linux
machine and want to run a windows image)

My guess instead is you'd be pointing to a set of infrastructure that can find
(or create) Windows Docker Hosts and it would run there.

~~~
SEJeff
I'm excited to see what the future brings! Can't wait to see some of the
service discovery stuff like you can build with etcd and consul make it into
libswarm.

~~~
nickstinemates
Not libswarm, docker proper.

See [https://github.com/bfirsh/docker/tree/host-
management](https://github.com/bfirsh/docker/tree/host-management)

There's also a relevant thread on the docker-dev mailing list

------
valevk
Would be awesome to have Microsoft Office as Docker container.

~~~
nickstinemates
Wouldn't it? Also imagine, every time you do a build inside of something like
Visual Studio, being able to test and distribute that in its own container.

The tangential benefits/integrations start to get really interesting.

~~~
ropman76
yes this would be interesting. We have application severs with multiple
windows apps running on them with different versions of the .Net framework. I
had to pull teeth with our SysAdmin to get the .Net upgraded on the server. It
would be nice to have a container for each so I (as a dev) could run the each
app with it's own needed dependencies instead of having to install them on the
server.

~~~
ghuntley
This is already happening in .NET land independently of this announcement.
ASP.NET vNext Katana (1) completes the move away from a perspective monolithic
framework and instead individual NuGet packages. Ie - when you deploy your app
you deploy your assemblies and into that folder goes everything needed to run
the app independently, including and up to .NET core assemblies or BCLs.

Your app is a folder and that folder contains everything needed to run the
application even up to the point of self-hosting with OWIN - IIS is not needed
anymore!

(1) [http://www.asp.net/aspnet/overview/owin-and-katana/an-
overvi...](http://www.asp.net/aspnet/overview/owin-and-katana/an-overview-of-
project-katana)

------
megaman821
What would a base Windows image look like, just a PowerShell prompt? How would
you use the build file to install your dependencies without a package manager?

~~~
KevinEldon
From what I've read (I'm not expert in this space) there is Chocolatey [1]
availabe now for package management and Microsoft's OneGet on the horizon [2].

[1] [https://chocolatey.org/](https://chocolatey.org/) [2]
[https://oneget.codeplex.com/](https://oneget.codeplex.com/)

~~~
megaman821
Ok, so Windows Server 10 Core with OneGet would make a lot of sense for a base
image. Thanks for the answer.

------
johngossman
John Gossman from Microsoft here. I'm an architect on the Azure team and have
been working with Nick and others from Docker. Happy to answer questions.

~~~
megaman821
What does the future of Docker deployment look like an Azure? Will it be more
Heroku-like? Can I just provide a build file or a link to Docker repo image
and have a server running? When I push an update to an image will my servers
update? Can I control how many instances and resources each running Docker
image will use? How do I orchestrate several instances that need to work
together?

~~~
MadhanA
Hey, this is Madhan from Azure team. Thanks for your comment.

All great ideas and we are currently thinking though exactly the same ideas as
well. Which of these ideas would you like to see happen first, what would be
most important to you?

------
randomsearch
Great move for MS.

Not sure this is a good idea for Docker though. Doesn't it mean they lose
their focus on Linux? Seems to complicate things a lot, and potentially
introduce conflicts when prioritising what to do next. Simple is good. Serving
a closed source operating system looks unwise, given the nature of their
business.

~~~
nickstinemates
I completely understand the feeling about focus and slowing down.

I referred to this above, but big partners working on meaty objectives is
actually a positive success criteria that the governance model is built for.

That said, we try very hard to ensure that the flow of the project remains
unencumbered.

Docker is a community project; one of the beautiful benefits of that is that
Docker can change as long as you can reach critical consensus on any design
proposal.

Without the partnership, Docker could be brought to Windows at some
undetermined point in the future as soon as those native capabilities existed.

With the partnership, we have a set of dedicated Engineers from Microsoft and
the community who are eager to build consensus around getting Docker
integrated to the new API/Services that they're creating _as soon as
possible_.

There's no free lunch - if the contributions don't stand the scrutiny of the
maintainers, they will continue to work with them until it does.

I hope that helps - happy to discuss further!

------
ed_blackburn
This has been coming for a while, because it screams common sense..however
with Microsofts previous I'm still a little surprised.

I wonder if Steven Sinofsky would have been game for this?

A lot of Windows developers use commercial Windows for development (i.e. Win7)
with these features I anticipate more developers using (the more expensive)
Windows Server.

If your build output could be a container (VS build process?) that you can
ship, or as in a lot of "enterprise" organisations pass on to QA / UAT then
this is a big deal and a massive huge step.

~~~
nickstinemates
That process you describe excites me on so many levels. I'm literally giddy at
the possibilities of developer and ops productivity. All we have to do now is
not mess it up :)

------
NicoJuicy
How does the licensing work for Docker (Apache2 license, i know... It's more
about the pricing behind it) together with Windows? I can't seem to find any
info about this. I don't assume Windows is suddenly free of charge. The
Windows virtualization licensing isn't obvious anyway:
[http://www.microsoft.com/licensing/about-
licensing/virtualiz...](http://www.microsoft.com/licensing/about-
licensing/virtualization.aspx)

~~~
nickstinemates
Docker is an open source project governed by the Apache 2 license. Referenced
here:
[https://raw.githubusercontent.com/docker/docker/master/LICEN...](https://raw.githubusercontent.com/docker/docker/master/LICENSE)

Any contribution by Microsoft to the Docker project (currently slated, the
Docker Daemon for Windows) will be governed over said license.

What Microsoft chooses to do with Windows/kernel features/how that is licensed
is left to their discretion.

~~~
NicoJuicy
I'm actually wondering more about the cost of spinning Docker with Windows
Server 2012 for example.. I suppose Docker should enable me to spin up an MVC
website with Windows Server 2012.

How much would this cost and how is the pricing evaluated?

~~~
nickstinemates
Docker is free to use.

I don't know the price of the next version of Windows Server, but, Microsoft
has committed to make Docker available on that.

So, to use Docker on the next version of Windows Server, it will be the cost
of the Windows Server license.

------
tkubacki
Things like this make me wonder if Windows (Server) ecosystem will be able to
compete with Linux in long term.

I do realize corpo-world is filled with Windows Servers now but it seemed
Linux/Docker could change this with containers as a 'standardized server app
format' with super easy provisioning process.

Now since Windows will get more or less the same - Linux/Docker and
Windows/Docker will compete on tools and raw perf.

~~~
nickstinemates
> Now since Windows will get more or less the same - Linux/Docker and
> Windows/Docker will compete on tools and raw perf.

Pretty cool evolution, isn't it?

------
geertj
Does this change one of the fundamental tenets of docker, namely that docker
images are portable (thanks to the linux kernel providing a very high degree
of backwards compatibility).

In order words, will there now be Windows images and Linux images, and Windows
images will run on Windows hosts and Linux images on Linux hosts?

~~~
wmf
Docker images already weren't portable between Linux/x86-64, Linux/ARM, and
Linux/Power, so Windows/x86-64 is one more platform. I wouldn't be surprised
to see Illumos/x86-64 at some point.

~~~
nickstinemates
There is a budding Docker/ARM community I cannot wait to support.

More on that soon.

------
ilaksh
It mentions extending Docker to support numbers of distributed Docker
containers. I am building a PaaS around Docker so can I get a hint how that
will work? I would rather add value than duplicate an existing effort.

Is it something like an integration of Mesos, Fig and Docker?

~~~
CMCDragonkai
I'm building one as well. Want to discuss?

~~~
ilaksh
Sure.. I think yours is called Matrix AI right? "orchestrate massive
distributed infrastructure so that they become self-healing, self-organising,
and self-adaptable"

It sounds like Docker is going to eventually put something out that touches on
some of this stuff (although not necessarily self-healing etc.), just
wondering how we can take advantage of that or avoid duplicating
functionality.

~~~
CMCDragonkai
There's alot of parts to orchestration that isnt just container
implementations, and there are already tons of tools that do the different
parts of orchestration, so there's already some duplicated effort right now,
in fact everybody reinvents the wheel slightly when building new distributed
systems. The problem is putting it all together in an scalable model is very
difficult. Send me an email at roger.qiu ([{at}]) matrix.ai

------
discardorama
Is this the "embrace" step of "embrace, extend, extinguish"?

~~~
nickstinemates
I think it's right to question that, but I haven't seen any indication of
that. I look to the Azure team, and how they're operating.

Oracle DB is available. That's got to say something.

------
alisnic
very smart move from Microsoft's part.

~~~
steego
I think there may be a growing consensus in their organization that have to
keep making decisions like this if they want to remain relevant.

~~~
monstermonster
I think its more that they have the cash to do everything so that's what they
are doing. When you do everything you are unavoidable.

Not a bad strategy.

They haven't lost a bit of relevance with the majority of the paying user
base. However the tech press like to spin it that way. When I see a Mac or a
Linux box in a 2000+ seat corporate network, then perhaps I'll believe it. The
only markets they aren't winning are the freshly created volatile ones.

~~~
steego
I should have added that I'm a .NET developer who's recently returned working
with in an open source shop. The problem I see is not that they don't have
good tools or relevant solutions for real world problems. The problem I see is
I'm in my late thirties and I find myself to be one of the younger developers
when I go out to MS related user groups and events.

Spending time in the open source world with younger developers, it's clear the
only value they get from Microsoft is for their gaming machines at home. While
a number of them respect the development tools, it doesn't matter because
Microsoft has done a great job tying it to the Windows titanic.

I recall interviewing with a number of companies in the mid 90's and talking
with the programmers who worked with DEC based tools. The ones I talked to had
nothing but good things to say about their tools and systems and how they had
_real_ implementations of various systems that PC's were trying to implement
at the time. I can't help but look back and find myself in the same position
on a course towards becoming irrelevant in 10-20 years.

I guess what I was trying to get at is Microsoft is going to have to make a
considerable effort to focus on luring the generation they lost if they want
to remain relevant. That generation of developers isn't simply going to pony
up for slightly better tools. They demand having access to software when it's
available so they can download it immediately with one of twenty different
package managers.

I'm not predicting Microsoft's doom, but I am saying that Microsoft is facing
an incredible number of challenges that will make "do everything" a bad
strategy. On too many fronts they're faced with competition that ranges any
from inferior to superior, but free. In development tools, they're up against
a huge community of open source tools with some of them funded by huge
companies whose revenues don't depend on the sale of software. MS Office's
share is eroding, not just to direct competition, but to indirect alternatives
that posit that complicated word processors and spreadsheets are the wrong
answer.

I also don't think Microsoft can do everything because software is going
through a Cambrian type of explosion where you're seeing all sorts of
manifestations of species and hybrids. Sure a lot of these species will die
out, but as we witness new species of databases and operating systems it will
be difficult for a large company like Microsoft to predict which ideas it
needs to pay attention to and which to ignore. Adapting the complicated
markets is an incredible challenge, but there are companies that have done a
remarkable job staying on top.

~~~
the_real_bto
The formatting on your comment is messed up, hopefully this helps:

I should have added that I'm a .NET developer who's recently returned working
with in an open source shop. The problem I see is not that they don't have
good tools or relevant solutions for real world problems. The problem I see is
I'm in my late thirties and I find myself to be one of the younger developers
when I go out to MS related user groups and events.

Spending time in the open source world with younger developers, it's clear the
only value they get from Microsoft is for their gaming machines at home. While
a number of them respect the development tools, it doesn't matter because
Microsoft has done a great job tying it to the Windows titanic.

I recall interviewing with a number of companies in the mid 90's and talking
with the programmers who worked with DEC based tools. The ones I talked to had
nothing but good things to say about their tools and systems and how they had
_real_ implementations of various systems that PC's were trying to implement
at the time. I can't help but look back and find myself in the same position
on a course towards becoming irrelevant in 10-20 years.

I guess what I was trying to get at is Microsoft is going to have to make a
considerable effort to focus on luring the generation they lost if they want
to remain relevant. That generation of developers isn't simply going to pony
up for slightly better tools. They demand having access to software when it's
available so they can download it immediately with one of twenty different
package managers.

I'm not predicting Microsoft's doom, but I am saying that Microsoft is facing
an incredible number of challenges that will make "do everything" a bad
strategy. On too many fronts they're faced with competition that ranges any
from inferior to superior, but free. In development tools, they're up against
a huge community of open source tools with some of them funded by huge
companies whose revenues don't depend on the sale of software. MS Office's
share is eroding, not just to direct competition, but to indirect alternatives
that posit that complicated word processors and spreadsheets are the wrong
answer.

I also don't think Microsoft can do everything because software is going
through a Cambrian type of explosion where you're seeing all sorts of
manifestations of species and hybrids. Sure a lot of these species will die
out, but as we witness new species of databases and operating systems it will
be difficult for a large company like Microsoft to predict which ideas it
needs to pay attention to and which to ignore. Adapting the complicated
markets is an incredible challenge, but there are companies that have done a
remarkable job staying on top.

~~~
steego
Thanks. I guess Hacker News doesn't like leading spaces with paragraphs.

------
mrmondo
I really hope this doesn't distract from Linux development - there are a
number of bugs that have been hanging around for some time without updates
now.

------
yarrel
Partnering with Microsoft [almost] never ends well.

Good luck to Docker.

------
Akkuma
I wonder how this will impact spoon.net, since they recently launched their
windows container tech.

~~~
nickstinemates
I wish them the best of luck.

------
edwintorok
The site apparently only accepts RC4 as the cipher, I get: Error code:
ssl_error_no_cypher_overlap

~~~
ewindisch
Thank you.

Our website (docker.com) and the Docker Hub (hub.docker.com), our hosted
service, are managed directly by Docker employees and offer a better
maintained and security-focused cipher suite than our blog.

Unfortunately, we are aware that the blog's SSL/TLS configuration is not
ideal. It is on externally hosted infrastructure and we have been working with
our service provider to rectify these issues. We have high expectations of the
services we consume and will do what is necessary for the long-term security
and confidence of our users.

------
tonyplee
What kind of Windows server/kernel features does Docker need/want/like from
MS?

~~~
nickstinemates
The equivalent of c groups and namespaces, along with services that need to be
container aware (like svchost.exe) and a separate registry per container.

~~~
tonyplee
Is the docker for Windows is mainly CLI only?

Or the GUI exe will be also isolated from each container session?

~~~
nickstinemates
A future version of Windows will have Container capabilities, and Microsoft
has committed to contributing Docker Daemon code.

------
hamiltont
DockerHub-based Windows Package Manager - coming soon to an OS near you

~~~
nickstinemates
Don't know why you were down voted - this is exactly what is in the press
release.

~~~
hamiltont
_shrugs_. In all seriousness though, thank the people around your office for
me! There are some substantial hurdles to make this integration a practical
reality, but if Docker and Msoft can actually pull it off we will see a new
world of crazy possibilities. I can't wait!

------
jokoon
microsoft has been cornered for a long time, it has lost many ooportunities,
glad it's not reacting.

------
antocv
Worst news ever.

Docker people will spend more time fixing and making bugs due to Microsoft,
the documentation will become a mess (it cant possibly be same documentation
for that different systems), the Linux-side of docker will be more mediocre
compared to what it could have been if all effort went to it.

Remember Internet Explorer 6, Visual Basic, the horror that is Excel and the
whole Office suite, Asp.net, Windows Millenium, The attempt to kill Linux by
Microsoft through SCO.

~~~
nickstinemates
The announcement clearly states that Microsoft are becoming "Docker people" ->
they're contributing the code in the Docker ecosystem, which means precisely
that our problems become their problems.

This isn't any different than Red Hat contributing the Device Mapper backend
to Docker so it can run unmodified on RHEL. Nothing about the UX
changed/fragmented from there.

------
SlipperySlope
Microsoft is going about this the wrong way. They should adopt GNU/Linux,
supporting containers, file systems, etc. as their kernel, and then add the
proprietary Windows layer on top, e.g. WINE.

Otherwise existing Dockerfiles will not build on Windows - right?

~~~
tracker1
This is about getting container/docker tooling running on windows, for windows
applications. You are correct, this will not run Linux containers directly on
Windows, or vice-versa.

It's still a compelling option, but I'm not quite certain of the value that it
will bring to the table here.

