By Jeff Nickoloff, author of Docker in Action
Volumes are ways to declare shared state or stateful data with a life cycle independent of a running program. Since containers are segregated in all other ways, volumes provide a mechanism to specify a scope of interaction through file access. In this article, I talk about volumes and their benefits.

What are Volumes and Their Benefits? (PDF)