Docker CLI docker rmi 常用命令

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍Docker CLI 中 docker rmi 常用命令。

1、docker rmi 简介

docker rmi 命令用于删除本地的一个或多个镜像。如果想要删除正在使用的镜像,需要先停止使用该镜像的容器。从主机节点删除(取消标记)一个或多个镜像。如果镜像有多个标签,将标签作为参数使用此命令只会删除标签。如果图像只有标签,则同时删除镜像和标签。

这不会从仓库中删除镜像。除非使用-f选项,否则不能删除正在运行的容器的镜像。要查看主机上的所有镜像,使用docker image ls命令。

参考文档https://docs.docker.com/engine/reference/commandline/rmi/

2、docker rmi 语法

docker rmi [OPTIONS] IMAGE [IMAGE...]

3、docker rmi 命令

可以使用短 ID、长 ID、标记或摘要删除镜像。如果一个镜像有一个或多个引用它的标记,那么在删除该镜像之前,必须先删除所有标记。当通过标记删除镜像时,摘要引用会自动删除。

docker images

REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
test1                     latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
test                      latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
test2                     latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
docker rmi fd484f19954f

Error: Conflict, cannot delete image fd484f19954f because it is tagged in multiple repositories, use -f to force
2013/12/11 05:47:16 Error: failed to remove one or more images
docker rmi test1:latest

Untagged: test1:latest
docker rmi test2:latest

Untagged: test2:latest

docker images

REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
test                      latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
docker rmi test:latest

Untagged: test:latest
Deleted: fd484f19954f4920da7ff372b5067f5b7ddb2fd3830cecd17b96ea9e286ba5b8

以上示例中,首先列出了所有可用的镜像,然后删除了三个不同的标记,最后检查了剩余的镜像列表,并删除了其中一个标记。

使用 -f 标志并指定镜像的短或长 ID 时,此命令将取消标记并删除与指定ID匹配的所有镜像。

docker images

REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
test1                     latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
test                      latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
test2                     latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
docker rmi -f fd484f19954f

Untagged: test1:latest
Untagged: test:latest
Untagged: test2:latest
Deleted: fd484f19954f4920da7ff372b5067f5b7ddb2fd3830cecd17b96ea9e286ba5b8

以上示例中,使用 -f 标志并指定镜像的短 ID,从而立即删除了匹配该 ID 的镜像。

使用摘要拉取的镜像没有相关联的标记:

docker images --digests

REPOSITORY                     TAG       DIGEST                                                                    IMAGE ID        CREATED         SIZE
localhost:5000/test/busybox    <none>    sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf   4986bf8c1536    9 weeks ago     2.43 MB

以上示例中,列出了所有镜像的摘要。

要使用摘要删除镜像,请运行以下命令:

docker rmi localhost:5000/test/busybox@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf
Untagged: localhost:5000/test/busybox@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf
Deleted: 4986bf8c15363d1c5d15512d5266f8777bfba4974ac56e3270e7760f6f0a8125
Deleted: ea13149945cb6b1e746bf28032f02e9b5a793523481a0a18645fc77ad53c4ea2
Deleted: df7546f9f060a2268024c8a230d8639878585defcc1bc6f79d2728a13957871b

以上示例中,通过指定完整的镜像名称和摘要,立即删除了匹配该摘要的镜像。

4、命令选项

选项

默认值

描述

--force, -f

强制删除镜像

--no-prune

不要删除未标记的父级镜像

推荐阅读
cjavapy编程之路首页