I was reading a nice question about docker - answer has overview of docker implementation details. I was wondering if anything like this is possible to do on Windows platform.
- Do Windows alternatives for Docker exist?
- Is it theoretically possible to use other (Windows based) components to build it?
Update1:
- Slightly related question (sandboxing): Is there a lightweight, programmable Sandbox API for the Windows platform?
Update2::
For info how to install docker on windows (unrelated) - official docs has great instructions how to set up the environment by using boot2docker VM.
Starting in june 2016, Docker can be run on Microsoft's Hyper-V virtualization on Windows 10 hosts. This is now the preferred and "official" way to run Docker on Windows.
https://docs.docker.com/engine/installation/windows/
Hyper-V is a Type-1-Hypervisor, meaning docker will run one layer closer to the host hardware and perform significantly faster than boot2docker (which uses VirtualBox, a Type-2-Hypervisor, running inside the host OS).
The performance benefit for docker has a downside too: Enabling Hyper-V will prevent hardware virtualization features for Type-2-Hypervisors, therefore existing VirtualBox images can not be used with VTx, and you might want to consider moving other virtualized OSes to Hyper-V as well.
Windows 7-8.1 hosts can still use boot2docker to run Docker containers, but the main development focus for Docker on Windows is the "new" Hyper-V-Docker.
You can run docker in a virtual machine.
New Update
Vagrant has now integrated docker support. It can be used as provider or as provisioner. Here are some useful links.
Feature Preview: Docker-Based Development Environments
Vagrant Docs: Docker Provisioner
Vagrant Docs: Docker Provider
Old Update
As seanf pointed out in a comment below, Vagrant support was dropped. Instead they point to boot2docker:
Old answer
The official docker documentation contains a small guide to install docker inside a Vagrant box. Vagrant is a great vm management wrapper. The guide is for Mac/Linux, but you get the idea to do the same in Windows:
http://docs.docker.io/en/latest/installation/vagrant/
This way you can share docker images across multiple systems with different operating systems.
I currently don't know of any way to do the same thing on native windows as of right now.
I don't think the windows kernel was built for this sort of thing, so in order for it to be supported Microsoft would have to add the capabilities to the windows kernel. If I'm wrong, someone please correct me.
The most common way for people to do something like this is to use a VM in windows that runs a Linux based OS, and running everything inside of that. You could also do the same thing using FreeBSD (Jails), and Solaris (zones), if that is more your cup of tea. But Docker currently doesn't support FreeBSD or Solaris, so you will need to use the native tools for those.