It's probably also worth mentioning dokku, which is a simplified private PaaS built on top of Docker. It adds Heroku buildpacks (Ruby, NodeJS and Java right now) into the mix, and a git push-to-deploy model.
Because dokku has a concise and readable codebase, browsing the source is a good way to see one practical application of Docker, too.
I've set it up as a sandbox environment for developers at my company, and for our purposes it's a much better fit than some of the more heavyweight private PaaS products. I'm really enjoying working with it!
I played with Docker a bit yesterday. Containers really are awesome! VMs look almost stupid in comparison. I'll be using it as much as I can. Being written in Golang doesn't hurt either... Golang seems like a very good choice for this.
If you really want to know it isn't for finding the main site that everyone uses golang it is for finding all other references to the language.
As an example cloudflare writes a large amount of posts that have something to do with go if you google "go cloudflare" you get relevant results but you also get results of google mixing in the word "get" for go which are completely irrelevent.
Now if you google "golang cloudflare" all results pertain to the Go programming language.
(Not the best example because cloudflare doesn't use golang in their posts).
Feel free to add to the list if you know of some I forgot.
I'm also planning on writing my own Docker for dummies tutorial that goes from beginning to end explaining how to use each part along the way. Now I just need to find some time to put it all together.
I would love to see more conceptual materials, explaining the ideas behind it, why I should use it, use cases, comparisons to alternatives - that kind of reading. It seems promising but a little hazy from a high level.
You're right. The Docker community has grown from a core of people who are naturally excited about containers, and typically have been tinkering with them for years. So most of the early material is biased towards the "how" rather than the "why". Now that the community has grown in amazing ways, we're working on changing that.
I gave a talk last week at the dotScale conference [1] about the high-level motivation behind Docker. The video should be available soon.
I'm also working on a series of articles on the design principles behind it - separation of concerns, static vs dynamic dependencies, why developers never use system packages, "real computers all the way down", thinking of the internet as one giant unix computer... Basically 5 years worth of obsessing over this particular subject :)
OpenVZ is basically identical to lxc, which is one of the underlying components of Docker.
Docker could be ported from lxc to openvz (and probably will be in the future as a plugin, as it has been requested).
That is to say, Docker is not a replacement for OpenVZ, or any other low-level container capability. It's simply a higher-level tool which is built on top.
Yes, LXC and OpenVZ in it's core similar technologies that enable linux containers. OpenVZ also comes with varios containers management tools, some of which are available via docker for LXC containers too.
Because dokku has a concise and readable codebase, browsing the source is a good way to see one practical application of Docker, too.
I've set it up as a sandbox environment for developers at my company, and for our purposes it's a much better fit than some of the more heavyweight private PaaS products. I'm really enjoying working with it!