Clustering is the preferred way to use Docker. Mesos, k8s and Docker Swarm are all built around this model. However, it seems that they make more sense for certain scale. For a small deployment (especially web/app hosting), the workload doesn't change often, also, different roles of containers may have different spec on the instance type, disk space, public/private subnet, etc, cluster+scheduling makes things more complicated for a deployment <50 instances.
Would like to hear more thoughts.