We use docker for:
- running graphite (can't say it was less pain launching it, since Dockerfile was outdated a bit, and I also had to additionally figure out persistency issues, but overall I'm happy it's all virtualized and not living on server itself)
- building our haskell projects for specific feature (your run a container per feature, this way you omit pain switching between features when you need to build one)
- running tests (per each feature we start container with whole infrastructure inside (all databases, projects etc.))
- running staging, also container per feature
Very useful stuff, comparing to alternatives, I should say. And quite easy to work with after you play a bit with docker's api.