1 man docker-rmi
NAME
docker-rmi - Remove one or more images.SYNOPSIS
docker rmi [-f|--force[=false] IMAGE [IMAGE...]
DESCRIPTION
This will remove one or more images from the host node. This does not remove images from a registry. You cannot
remove an image of a running container unless you use the -f option. To see all images on a host use the docker images
command.
OPTIONS
-f, --force=true|false When set to true, force the removal of the image. The default is false.
2 代码分析
docker rmi
CmdRmi(api/client/command.go) ---> deleteImages(api/server/server.go) ---> srv.ImageDelete (server/server.go)
CmdRmi和deleteImages省略,主要分析srv.ImageDelete部分
在srv.ImageDelete中调用server的方法srv.DeleteImage完成镜像的删除工作。
创建一张表,用于存储删除镜像的信息,将这些信息显示在标准输出上
imgs := engine.NewTable("", 0)
if err := srv.DeleteImage(job.Args[0], imgs, true, job.GetenvBool("force"), job.GetenvBool("noprune")); err != nil {
return job.Error(err)
}
将删除镜像的信息显示在标准输出上
if _, err := imgs.WriteListTo(job.Stdout); err != nil {
return job.Error(err)
}
srv.DeleteImage(server/server.go)分析