Как в docker хранить данные и управлять контейнерами?
 Все изменяемые данные, например картинки, ccs, js
Это неизменяемые части приложения. Они должны располагаться внутри Докеровского образа. Каждый раз при изменении css - образ перестраивается. Поскольку он инкрементальный - это быстро и не тратит много место на диске.и загруженные пользователями файлы хранить в volume образе. 
Не обязательно как файлы. 
Можешь загружаемые пользователем файлы класть по сети на S3 или OpenStack Swift хранилище. Есть софт - эти вещи можно взвести и локально. А можно использовать и внешние серверы. Например, с помощью Ceph Object Storage.
Скажем Ceph автоматически размазывает данные на несколько серверов (полубэкап получается).Каким инструментом всем этим добром управлять, чтобы была отказоустойчивость и желательно с веб морда?
Kubernetes, Yandex Cocaine (cocaine-runtime, cocaine-plugins, cocaine-tool)+Yandex Elliptics, Nomad+Consul+Registrator+Prometheus+Grafana, CloudFoundary, OpenShift, OpenStack, CoreOS, Docker Swarm, EtcD, Fleet, GoCircuit, Helios, AWS ECS, HTCondor, Hadoop YARN, Nagios/Zabbix/Sensu, SkyDNS, SmartStack, Puppet, Ansible, Chef, doozerd, CloudFormation, Boto, Fog, Heat и пр.
Что то из выше перечисленного - законченные платформы, что то кусочки из которых можете сложить свою платформу. 
Rancher не сырой. Сырая RancherOS. Можно использовать другую.
Mesos вы использовали голый что ли? К нему нужна Aurora, Maraphon, Singularity.
Они все заточены под дикое количество нод. Ничто не мешает использовать и на 5 нодах. Правда, к примеру, Mesos из-за его Zookeeper неоправдано хочет минимум 16 гигабайтов на ноду.
В принципе достаточно Consul для многих вещей.
Пример:
https://medium.com/@ladislavGazo/easy-routing-and-...
Посмотри в сторону OpenShift, это проект RedHat, работает только на CentOS/RedHat, но он рещает все твои проблемы.