Pulling an image will grab it from Docker Hub without running it.
Running an image will pull it if necessary, create a container from it, and start the new container with the given arguments.
docker pull nginx docker run -p 80:80 nginx |
Ideally, no changes would be necessary. However, in cases where you need to modify an image you can create a new image from a running container with docker commit.
Once you are satisfied with your changes, you can then choose to push your image back to Docker Hub, so that yourself and others can easily pull and run it in the future!
This is, by far, the easiest way that I've found to distribute pre-package code.