I understand you might want to play with it in a lab environment, but in production at scale (especially Google-scale) sounds very strange.
I understand you might want to play with it in a lab environment, but in production at scale (especially Google-scale) sounds very strange.
(as does every public cloud provider [e.g. AWS])
For now, VMs are required to ensure a security barrier between different user's containers on the same physical machine. See some of Dan Walsh's posts on the subject (e.g. https://opensource.com/business/14/9/security-for-docker) for more context.
https://cloud.google.com/container-engine/
There's also Amazon EC2 Container Service
http://aws.amazon.com/ecs/details/
So Google and Amazon don't just sell VMs. They sell "CMs" as well (Container Machines).
Also Amazon bills you for that EC2 instance as any other instance.
Personally I have hard time understanding the benefits of running docker in public cloud, you still run a VM you still pay for that VM. It just one extra abstraction layer which increases complexity of your infrastructure and also reduces performance.
I do understand the benefits of using containers in own data center, when you run it on bare hosts. There's simplicity and and lower costs (because you don't have VM) you have more resources which lets you run more containers than VMs on that host.
Simpler deployment and basically forcing "12-factor", as well as easier development environment setups. Nothing you can't achieve with other tooling, but it's nice to be able to guarantee that your dev environment is identical to your prod.
Given this, it actually makes sense to combine VM with Docker, check out www.hyper.sh
[1] http://mojo.codehaus.org/rpm-maven-plugin/ (the website does not seem to be available at this moment due to recent CodeHaus shutdown)