I would argue that computer scientists (academia) is the biggest offenders when it comes to writing "non-clean" code. They normally don't have any incentive to create reusable and maintainable code.
I've started working on something along those lines: http://gilliam.github.io/ . Currently using LXC, but adapting to docker is quite easy since "VMs" are provisioned and launched via shell scripts.
I'm skeptical that your bespoke approach is better than gluing together well-known and battle-tested tools, but if you stick at it, you naturally have the chance to do something better, because of the singular vision. Best of luck with this!!
You might be right. I'm betting on the fact that if you compose your system of small decoupled components you can change your mind at a later time. Lets see what happens :)