Docker是否清除旧/未使用的图像?

时间:2015-05-18 22:31:32

标签: linux docker

许多组织专门使用Docker,以便能够无缝回滚已部署的软件。例如,给定一个名为newapi的图像,部署如下所示:

# 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

如果出现问题,我们可以恢复到之前的版本:

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

问题在于,随着时间的推移,我们的本地Docker镜像索引将获得 huge 。 Docker是否会自动从其本地索引中删除旧的未使用的图像以节省磁盘空间,还是必须手动管理这些图像?

2 个答案:

答案 0 :(得分:2)

它不适合您,但您可以使用以下命令手动执行此操作。

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

与docker rm和rmi命令相关的文档位于:https://docs.docker.com/reference/commandline/cli/#rm

附加命令是标准bash。

答案 1 :(得分:2)

2016年9月更新docker即将推出的docker 1.13:PR 26108commit 86de7c0引入一些新命令,以帮助显示Docker守护程序数据在磁盘上占用多少空间并允许轻松清理“不必要的”过剩。

docker system prune将删除所有悬空数据(即按顺序:容器停止,没有容器的卷和没有容器的图像)。甚至是未使用的数据,-a选项。

您还有:

取自here

相关问题