53 comments

[ 3.4 ms ] story [ 127 ms ] thread
But not the home edition or whatever the OEM edition is called these days. This is another one of those aggravating things pushing me towards linux/oss.
The OEM Pro version is available in any computer store that sells PC parts.
And you'll have to pay for it, I presume, which is another difference.
A Windows license is nothing on a developer budget selling his work.

I really don't like this idea that we are expected to be paid, but complain when paying for our tools.

The problem - to me, as a sysadmin/helpdesk monkey/part-time developer - is not so much the expense itself as the bureaucracy involved.

If I want to install CentOS or FreeBSD, all I need is hardware (with one or two spare machines usually at hand, as well as few old ones that got decommissioned) or a VM, and I'm good to go.

If I want to install Windows, I need to talk to my boss and explain why I need another Windows license, which can be rather tedious. (If we had an MSDN subscription, that would not be a problem of course, but then the price tag begins to matter.)

It's a lot to play around with a new tech at home though.
(comment deleted)
My free Windows 10 is Pro. I still think they should have kept Windows 10 free for residential use.
My problem is that its either Docker or Vmware Workstation - i kind of need both and I don't want to have to reboot everytime. But it looks interesting.
Depends on what you're doing with VMware Workstation, but agreed, if you're doing advanced stuff in VMware, hyperv doesn't replace it... though, for many use cases Hyper-v is decent...

Also, I think it's misleading to say no VM is needed, it's just more transparent now.

Well, you could use HyperV for VMs instead - I have never done it, but its not that bad apparently
For a while, we had part of our servers running on Hyper-V (on Windows Server 2012). I could not complain, really, except that a Debian VM at the time was randomly loosing its network connection, like somebody was pulling out the virtual network cable. I could imagine this got better with Debian 8, though. (CentOS 6 had no such problem.)
VmWare has niche features very important for some users: USB pass-through, and accelerated 3D graphics.

Servers usually need neither of them, though.

If you have windows "Pro".... Which most people won't have.
Or if you're an "insider"
The target audience of Docker are developers.

As someone that develops software for Windows since the version 3.1, I don't get why professional developers would use the consumer version of Windows.

Because: money.
I get it, rather get others to pay for our work while we use tools for free.
> I don't get why professional developers would use the consumer version of Windows.

Because most computers/laptops come preinstalled with Windows Home.

The keywords are "professional developers".
I wasn't disagreeing with you, I was just pointing the reason why a lot of coders are stuck with Windows Home.
Yes, but when coders buy a computer for work, they should take care to buy one with professional version.

That is what I do.

A Windows Home to Windows Pro upgrade is available in the Windows Store or elsewhere.
My free Windows 10 is Pro?
I'm somewhat confused. So I've given it an install but I was presuming that there's a Linux Kernel being virtual machined in the background.

Isn't that why it requires Hyper-V?

There's reference in the instructions that changing the IPs will require the VM to be rebooted from what I can tell as well.

Microsoft implemented containers in the Windows kernel, so Docker for Windows no longer needs a VM+Linux to run. The container implementation requires Hyper-V.
Yes, but the difference is using an external VM vs the inbuilt VM.

Similarly, I use Veertu on OS X: it uses the inbuilt VM in OS X but it's still using a VM.

The title of this article is inaccurate.

Title has now been fixed (it originally read 'run Docker without VMs')
Is this true? On the Mac the docker daemon is still living in a small linux vm. The only change to previous setups is, that you no longer need virtual box, vmware etc and automatically use the hypervisor features from the kernel.
(comment deleted)
From the linked web page - "Docker for Windows requires Microsoft Hyper-V to run."

Its the same as the Docker for macOS, where is is booting a VM in the background, you just can't see it.

Docker for Windows, linked above, and Windows Container Service[0] are two separate things. Docker for Windows runs a linux VM in Hyper-V and allows you to run linux based docker containers. Windows Container Service allows you to run windows based container images (using Hyper-V as a backend) and can use either Docker or Powershell Container Commandlets as a frontend for interacting with those containers.

So, yes Microsoft did implement containers in the Windows kernel, but that isn't what OP is about.

[0]:https://msdn.microsoft.com/en-us/virtualization/windowsconta...

Docker captain here. Starting from windows 10 anniversary (which should be free to upgrade) and windows server 2016 windows can natively run Docker containers without hyper-v. Even though some features might be missing, docker and microsoft are working hard to get everything done. There are plenty of tutorials in the web about how to setup .net and mysql apps natively on windows. I totally recommend it.
I don't get it. "Natively run Docker containers without Hyper-V"? What does this mean? Does it emulate a Linux kernel? What syscalls are available? What is the underlying filesystem?
The containers that run natively use a windows based image, not linux. So, no kernel emulation, no linux syscall translation, just pure windows base
Yes, they are emulating Linux kernel by translating the syscalls. I don’t know which ones are implemented, but MS told “lxss.sys has ~235 of the Linux syscalls implemented with varying level of support. This support will continue to improve over time especially with the great feedback we get from the community.”

The underlying filesystem is NTFS, Microsoft implemented two wrappers. VolFs supports all Linux features, but not interoperable with Windows. DrvFs is limited from the Linux perspective, but interoperable with Windows, i.e. Linux apps can read and write data from Windows’ drive C.

Your answer contradicts this one from numo16: https://news.ycombinator.com/item?id=12734445. Who is right?
I think I am.

If you’ll scroll to the end of the linked document, you’ll read docker says windows containers is beta feature not yet available on stable builds.

Also, there’s output of docker version command that clearly says OS/Arch: linux/amd64.

Different discussion. Thats about Windows Server 2016 supporting docker containers, this is about the Docker for Windows Beta.

Docker on WS 2016 is Windows containers only, this is for linux containers on a windows system.

The title says "without VMs" but Docker for windows requires Hyper-V. Surely there is a VM running in the background, isn't there?
Yeap - and badly run from the sound of it:

> Containers and images created with Docker for Windows are shared between all user accounts on machines where it is installed. This is because all Windows accounts will use the same VM to build and run containers. In the future, Docker for Windows will better isolate user content.

Can someone change the title?

An Pay 180$ for the pro version that supports hyper-v... Then better stay at Linux ... Or come to...
Docker (on Linux): years of unstable releases, breaking changes and weird issues you'll only find out in production.

Now available for windows! :D

On the bright side. Maybe that will make finding the perfect combination (i.e. one that doesn't crash) of OS + kernel + docker version + filesystem easier because there is limited diversity on Windows.

It is sad to say, but this is useless. If you enable Hyper-V you can't use VirtualBox or VMWare Workstation. You can't also run Android emulator...
To be fair, you can use Docker with VirtualBox, although I think it tends to be slower and use more resources.
That is true, but it is a slightly different product, no? I wonder why they didn't simply let users to decide which hypervisor they want to use for Docker. I can hardly see a use case for having Docker for Windows for software development.
Potentially someone could actually prefer Hyper-V on Windows 10 over VirtualBox. On my Windows 10 laptop I use Hyper-V to run Docker, stand alone Ubuntu 16.04 and Gentoo VMs, as well as Windows VMs provided by whatever the Modern.IE project is now known as.

I'm sure that if I needed to run something much less currently maintained, like OS/2, that VirtualBox on Windows would be better.

Also, I think it would have been a good idea for the Docker for Windows package to allow choosing between common Windows VM system instead of being tied to only one.

I was also running Hyper-V just to get an opinion, so I had Docker for Windows and Ubuntu VM alongside. Setting it up was a little bit clumsy - nowhere near the comfort of VMWare Workstation.