I've spent several weeks diving into the devops world for a project I'm working on. I had originally thought I'd deploy everything -- infrastructure like smtp and nginx reverse proxy as well as custom or replicated apps -- in docker containers, but have found a combination of configuring sever infrastructure with Ansible and using docker only for the apps proper to be a much better approach. This article by Matt Jaynes rings true to my experience so far.