
Docker镜像本质是一个只读文件。它包含了创建Docker容器所需的全部文件和配置信息,除应用程序本身(例如一个编译好的Jar包),还包含了应用程序运行所需的所有依赖项(如操作系统、运行时环境、系统工具、库文件等)。
核心特性与详细解释
分层结构
只读性(Read-Only)
内容可寻址(Content-Addressable)
基于联合文件系统(Union File Systems)
最核心的理由是:镜像提供了一种标准化的、轻量级的、不可变的交付物,它保证了应用在任何环境中都能以完全一致的方式运行,从而实现了“构建一次,随处运行”。
下面我们从几个关键角度来详细拆解为什么要使用镜像:
传统痛点:
这就是经典的“ works on my machine ”问题。
镜像的解决方案:
镜像成为一种通用的、标准的软件交付物。
这个命令包含了下载、解压、配置、运行所有步骤。它极大地简化了部署流程,降低了运维成本和对运维人员技能的要求。
关于login,pull,push等命令的解析请参考:Docker核心概念与镜像仓库操作指南
docker rmi
功能:删除镜像。 语法:
docker rmi [OPTIONS] IMAGE [IMAGE...] 别名:docker image rm,docker image remove
关键参数:
-f:强制删除;--no-prune:不移除该镜像的过程镜像,默认移除。示例:
docker pull busybox:1.36.0docker pull busybox:1.35.0docker images busybox

注意:被引用的镜像无法被删除,需要先关闭相应的容器。
示例:
docker pull busybox:1.36.0 busybox:1.36.0docker run -it --name mybox busybox:1.36.0 shdocker rmi busybox:1.36.0docker rm myboxdocker rmi busybox:1.36.0docker images busybox
注意:镜像有多个标签时,指定镜像标签所删除的只是标签,镜像并没删除,在使用该镜像的容器在运行,只是不能再用标签管理,只能使用ID docker save 功能:将指定镜像保存成 tar 归档文件。 语法:
docker save [OPTIONS] IMAGE [IMAGE...] 别名:docker image save
关键参数:
-o:输出到的文件。示例:

docker load 功能:导入使用 docker save 命令导出的镜像。 语法:
docker load [OPTIONS] 别名:docker image load
关键参数:
--input, -i:指定导入的文件,代替 STDIN。--quiet, -q:精简输出信息。示例:

docker history 功能:展示的是镜像的构建历史记录 语法:
docker history [OPTIONS] IMAGE别名:docker image history
关键参数:
-H, --human:大小和日期采用人容易读的格式展现--no-trunc:显示全部信息,不要隔断-q, --quiet:只显示镜像 ID 信息示例:

docker image prune 功能:删除不使用的镜像。 语法:docker image prune [OPTIONS] 关键参数:
-a, --all:删除全部不使用的镜像;--filter filter:指定过滤条件;-f, --force:不提示是否删除。离线迁移镜像指的是在没有网络连接或无法直接访问镜像仓库(如Docker Hub、Harbor)的环境下,将Docker镜像从一台机器转移到另一台机器的过程。 它不通过网络拉取(docker pull),而是先将镜像打包成一个离线文件(如.tar归档文件),然后通过物理媒介(如U盘、移动硬盘)或内部文件传输方式,将这个文件复制到目标机器上,最后再加载到目标机器的Docker环境中。 这里使用scp把镜像从一个服务器拷贝到另一个服务器,这个过程的镜像数据流是在两个服务器之间直接通过SSH协议传输的,完全走的是内部的网络通道,与外部互联网隔离。
docker save -o mybox2.0 busybox:1.35.0scp docker mybox2.0 root@服务器IP:要拷贝到的目录docker load -i mybox2.0非常感谢您能耐心读完这篇文章。倘若您从中有所收获,还望多多支持呀!