Remove a Docker Image
The short answer
To remove and un-tag a single Docker image from your local machine, you can use the [.inline-code]docker rmi[.inline-code] command followed the the identifier of the image you want to remove:
Note that you will first need to stop and remove all the containers currently using this image in order to be able to remove it.
You can learn more about this by reading our article on how to remove all stopped Docker containers.
[#easily-recall-syntax-using-ai]Easily retrieve this command using Warp’s AI Command Search[#easily-recall-syntax-using-ai]
If you’re using Warp as your terminal, you can easily retrieve this command using the Warp AI Command Search feature:
Entering [.inline-code]docker remove image[.inline-code] in the AI Command Search will prompt an [.inline-code]docker[.inline-code] command that can then quickly be inserted into your shell by doing [.inline-code]CMD+ENTER[.inline-code].
[#removing-from-local-machine]Removing an image from the local machine[#removing-from-local-machine]
A Docker image can be removed using either its short or long identifier, its tag, or its digest. To get this information, you can run the [.inline-code]docker images[.inline-code] command, which will list all the locally downloaded images:
You can then use one of the methods described below to remove one or more images. Alternatively, you can also read our article on how to remove all Docker images at once.
[#removing-using-a-tag]Removing an image using its tag[#removing-using-a-tag]
A tag is a string of characters used to identify a specific version of an image (e.g. [.inline-code]latest[.inline-code], [.inline-code]v1.0[.inline-code]).
To remove an image based on its tag, you can use the following syntax:
For example, the following command will remove the [.inline-code]mysql[.inline-code] image version 8:
Note that if an image has one or more tags referencing it, you must remove all of them before the image is removed.
[#removing-using-a-digest]Removing an image using its digest[#removing-using-a-digest]
A Docker image digest is an immutable identifier created during the build time of the image.
Since a digest cannot be altered or tampered with, unlike a name or tag, it is sometimes preferable to use it in order to prevent the accidental removal of unwanted images, especially when working with scripts or automation.
To remove a Docker image using its digest, you can use the following syntax:
For example, the following command will remove the [.inline-code]mysql[.inline-code] image based on its digest value:
Note that to list all images including their digest, you can use the [.inline-code]docker images --digests[.inline-code] command.
[#forcing-the-removal]Forcing the image removal[#forcing-the-removal]
To force the removal of a Docker image, regardless of whether it is currently used by containers or has multiple tags associated with it, you can use the [.inline-code]docker rmi[.inline-code] command with the [.inline-code]-f[.inline-code] flag (short for force) as follows:
Note that this command should be used with caution as it may provoke the unexpected disruption of running applications.
[#removing-from-a-docker-registry]Removing an image from a Docker registry[#removing-from-a-docker-registry]
To remove an image from an online Docker registry, you must first authentication to the registry using the [.inline-code]docker login[.inline-code] command:
List all the images present in the registry using the [.inline-code]docker search[.inline-code] command:
And finally, run the [.inline-code]docker rmi[.inline-code] command using the following syntax:
For example:
[#removing-from-artifactory]Removing an image from Artifactory[#removing-from-artifactory]
To remove a Docker image from Artifactory, you can use the following [.inline-code]curl[.inline-code] command:
Where:
- [.inline-code]username[.inline-code] is your Artifactory username.
- [.inline-code]password[.inline-code] is your Artifactory password.
- [.inline-code]artifactory_url[.inline-code] is the URL of your Artifactory instance.
- [.inline-code]repository[.inline-code] is the name of the repository where the Docker image is stored.
- [.inline-code]image[.inline-code] is the name of the Docker image you want to remove.
- [.inline-code]tag[.inline-code] is the tag of the Docker image you want to remove.