Naftuli Kay
Naftuli Kay

Reputation: 91630

Does Docker purge old/unused images?

Many organizations are using Docker specifically for the advantage of being able to seamlessly roll back deployed software. For instance, given an image called newapi, deployment looks like this:

# fetch latest
docker pull newapi:latest
# stop old one and terminate it
docker stop -t 10 newapi-container
docker rm -f newapi-container
# start new one
docker run ... newapi:latest

If something goes wrong, we can revert back to the previous version like this:

docker stop -t 10 newapi-container
docker rm -f newapi-container
docker run ... newapi:0.9.2

The problem becomes that over time, our local Docker images index will get huge. Does Docker automatically get rid of old, unused images from its local index to save disk space, or do I have to manually manage these?

Upvotes: 1

Views: 790

Answers (2)

GalloCedrone
GalloCedrone

Reputation: 5067

Update Sept. 2016 for docker upcoming docker 1.13: PR 26108 and commit 86de7c0 introduce a few new commands to help facilitate visualizing how much space the docker daemon data is taking on disk and allowing for easily cleaning up "unneeded" excess.

docker system prune will delete ALL dangling data (i.e. In order: containers stopped, volumes without containers and images with no containers). Even unused data, with -a option.

You also have:

Taken from here.

Upvotes: 2

errata
errata

Reputation: 26812

It doesn't do it for you but you can use the following commands to do it manually.

#!/bin/bash
# Delete all containers
sudo docker rm $(sudo docker ps -a -q)
# Delete all images
sudo docker rmi $(sudo docker images -q)

The documentation relating to the docker rm and rmi commands is here: https://docs.docker.com/reference/commandline/cli/#rm

The additional commands are standard bash.

Upvotes: 2

Related Questions