Started playing with Docker because it was the cool new thing, but professionally I get more use out of Ansible > Digital Ocean. Seems like your Geodjango experience had more to do with the sharing of the script than the underlying tool.
I literally wasted nearly a day and filled up my drive with compilation artifacts last time I tried getting GeoDjango working. All those binary dependencies, subtle OS config changes and custom Postgres extensions can be a pain.
So given my need for local deploy and remote deploy it's hard to think of a better solution.
I usually spin up a local lxc container and point the ansible scripts at it using a dev inventory file. Mount the source code from the host filesystem onto the the container and I'm ready to go.