即使“docker image ls”显示空结果,重新创建后图像是否会再次显示?

即使“docker image ls”显示空结果,重新创建后图像是否会再次显示?

我们有一个现有的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 镜像、容器和卷

相关内容