许多组织专门使用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是否会自动从其本地索引中删除旧的未使用的图像以节省磁盘空间,还是必须手动管理这些图像?
答案 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 26108和commit 86de7c0引入一些新命令,以帮助显示Docker守护程序数据在磁盘上占用多少空间并允许轻松清理“不必要的”过剩。
docker system prune
将删除所有悬空数据(即按顺序:容器停止,没有容器的卷和没有容器的图像)。甚至是未使用的数据,-a
选项。
您还有:
取自here。