Docker Images Cheat Sheet¶
What's a Docker Image?¶
A Docker image is a file used to execute code in a Docker container. Docker images act as a set of instructions to build a Docker container, like a template. Docker images also act as the starting point when using Docker. An image is comparable to a snapshot in virtual machine (VM) environments.
Images¶
Images are just templates for docker containers.
Lifecycle¶
docker images
shows all images.docker import
creates an image from a tarball.docker build
creates image from Dockerfile.docker commit
creates image from a container, pausing it temporarily if it is running.docker rmi
removes an image.docker load
loads an image from a tar archive as STDIN, including images and tags (as of 0.7).docker save
saves an image to a tar archive stream to STDOUT with all parent layers, tags & versions (as of 0.7).
Info¶
docker history
shows history of image.docker tag
tags 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.
Credit¶
Thanks to @wsargent for creating this cheat sheet.