Images are just templates for docker containers.
Lifecycle
docker imagesshows all images.docker importcreates an image from a tarball.docker buildcreates image from Dockerfile.docker commitcreates image from a container, pausing it temporarily if it is running.docker rmiremoves an image.docker loadloads an image from a tar archive as STDIN, including images and tags (as of 0.7).docker savesaves an image to a tar archive stream to STDOUT with all parent layers, tags & versions (as of 0.7).
Info
docker historyshows history of image.docker tagtags an image to a name (local or registry).
Cleaning up
While you can use the docker rmi command to remove specific images, there’s a tool called docker-gc that will safely clean up images that are no longer used by any containers. As of docker 1.13, docker image prune is also available for removing unused images. See Prune.
Load/Save image
Load an image from file:docker load < my_image.tar.gz
Save an existing image:docker save my_image:my_tag | gzip > my_image.tar.gz
Import/Export container
Import a container as an image from file:cat my_container.tar.gz | docker import - my_image:my_tag
Export an existing container:docker export my_container | gzip > my_container.tar.gz
Difference between loading a saved image and importing an exported container as an image
Loading an image using the load command creates a new image including its history.
Importing a container as an image using the import command creates a new image excluding the history which results in a smaller image size compared to loading an image.