Best way to have Jenkins "update" a running docker container when the image has been updated
If you want to only use Docker, there is not much more you can do. Using Jenkins with Docker is already a good step forward. Perhaps you could docker stop
instead of ssh shutdown
but this won't make things much better.
There are tools out there like Openshift and Fabric8 that help you build a CI and CD workflows. This should help. Note, however, if you look closer to them you will see that several of them are built on top of Kubernetes.
If you are looking for a workflow ready to use, give Openshift a try. Have a look at it's architecture overview. It has a Jenkins plugin that make your life easier.
If you want to make a step forward at the same time you build your own workflow, no doubt Kubernetes is the way to go. It just put tons of facility in order to build your cluster of containers without imposing you some workflow. Have a look at this overview and the getting started from CoreOS docs.