我们有一个现有的docker镜像:
docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
setupython latest 3ce7423c6076 11 hours ago 1.49GB
让我们编写一个实用程序来删除容器和图像:
dockerrm ()
{
docker container ls -a | grep -i -v CONTAINER | awk '{print $1}' | xargs -I Q docker rm Q;
docker image ls -a | grep -i -v IMAGE | awk '{print $3}' | xargs -I Q docker image rm Q
}
现在删除它们:
08:13:46/~/exp/docker $dockerrm
Untagged: setupython:latest
Deleted: sha256:3ce7423c60768b31c538968efc7155055312df9be2d05d459578b9372dab3564
它们似乎已被删除:
08:14:27/~/exp/docker $docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
现在重新创建图像:
docker build -t setupython --progress=plain .;
它是新鲜创造的吗?
$docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
setupython latest 3ce7423c6076 11 hours ago 1.49GB # why 11 hours ago?
那么为什么图像仍然显示为过去创建的图像?还需要删除什么?
答案1
我注意到你的程序中有两点:
- 删除图像的命令是
docker rmi image
,而不是rm
- 悬空图像(即与任何标记图像均无关系的图层)可通过 删除
docker image prune
。清理可能会很有用。
参考 : 如何删除 Docker 镜像、容器和卷。