All the operations that we've seen work with our local Docker repository. Given the structure of Docker images and the fact that each layer can be worked on independently, they are easy to upload and share. To do so, we need to use a remote repository, or registry in Docker terminology, that will accept images pushed to it, and allow images to be pulled from it.
The structure of a Docker image is composed of each of the layers. Each of them can be pushed independently, as long as the registry contains the layer it depends on. This saves space if the previous layers are already present, as they will be stored only once.