using dockerfile is the best solution if possible, however it's not that easy.
I've been wondering the same thing, and my impression (which could be totally wrong) it that it's really the same case as with VMs --> you don't want to not know how to recreate the vm image. In my case I have regular .sh scripts to install, and am wondering why I can't just maintain these, run docker and effectively call these, and create the golden version image that way. My scripts work to get it installed on a local PC, and the reason I want to use docker is to deal with conflicts of multiple instances of programs/have clean file system/etc https://stackoverflow.com/questions/26110828/should-i-use-dockerfiles-or-image-commits
so basically, you still use shell scripts to create a docker image, using dockerfile is pain, just use gloden image for the most times.