☰
【Docker实战】超全镜像管理命令详解(查询、拉取、打包、清理、迁移)
2026/10/3 16:48:38 网站建设 项目流程

一、前言

Docker 镜像(Image)是容器的模板,是 Docker 生态的核心基础。所有容器的创建、运行、迁移、部署都依赖镜像,熟练掌握镜像管理命令是后端与运维的必备技能。

本文整理全网最全的 Docker 镜像管理命令,包含:镜像查询、搜索、拉取、构建、打标签、打包迁移、删除、批量清理等实战场景,零基础可直接上手。


二、镜像基础查询命令

2.1 查看本地所有镜像
日常最常用的镜像查看命令,展示本地已下载的顶层镜像信息。

# 基础查看本地镜像(常用)dockerimages# 完整语法dockerimages[OPTIONS][仓库名:标签]# 查看所有镜像(包含中间层镜像、悬空镜像)dockerimages-a# 只显示镜像ID(批量操作必备)dockerimages-aq

字段说明:

  • REPOSITORY:镜像仓库名称
  • TAG:镜像版本标签(latest 为最新版)
  • IMAGE ID:镜像唯一ID
  • CREATED:镜像创建时间
  • SIZE:镜像占用磁盘大小

2.2 格式化输出镜像信息

默认展示字段冗余,通过格式化命令精简输出结果,适配脚本统计场景。

# 表格形式展示镜像ID、仓库、标签、大小dockerimages--format"table {{.ID}}\t{{.Repository}}\t{{.Tag}}\t{{.Size}}"# 只输出镜像名称和标签(无表格表头)dockerimages--format"{{.Repository}}:{{.Tag}}"

2.3 搜索远程镜像

直接在 Docker 官方仓库搜索所需镜像,无需打开网页。

# 搜索指定镜像(以nginx为例)dockersearch nginx# 限制搜索结果数量(只展示前5条)dockersearch--limit5ubuntu# 只展示官方认证镜像dockersearch--filter"is-official=true"mysql

三、镜像拉取与版本管理

3.1 拉取远程镜像

从 Docker Hub 拉取镜像到本地,不指定标签默认拉取 latest 最新版本。

# 拉取最新版nginxdockerpull nginx# 拉取指定版本镜像(推荐固定版本,避免环境不一致)dockerpull nginx:1.24.0# 拉取阿里云/私有仓库镜像(示例)dockerpull registry.aliyuncs.com/nginx_official/nginx:1.24.0

3.2 镜像打标签(重命名)

常用于镜像私有化部署、仓库迁移,给原有镜像新增别名标签。

# 语法:docker tag 原镜像:原标签 新镜像名:新标签dockertag nginx:1.24.0 my-nginx:v1.0# 打私有仓库标签(用于推送私有仓库)dockertag nginx:1.24.0192.168.1.100:8080/nginx/nginx:1.24.0

💡 注意:打标签不会生成新镜像,只是给原镜像新增一个标识,镜像ID保持不变。


四、镜像构建(Dockerfile打包)

基于 Dockerfile 自定义构建镜像,是项目容器化核心操作。

# 基础构建(当前目录Dockerfile)dockerbuild-tmy-web:v1.0.# 不使用缓存构建(解决缓存导致的更新不生效问题)dockerbuild --no-cache-tmy-web:v1.0.# 指定Dockerfile文件构建(非默认文件名)dockerbuild-fDockerfile-prod-tmy-web:prod.

参数说明:

  • -t:指定镜像名称和版本标签
  • .:指定构建上下文目录(当前目录)
  • –no-cache:禁用构建缓存,全新构建

五、镜像打包与跨机器迁移(核心实战)

日常运维高频场景:本地自定义镜像无法从远程拉取,需通过 save/load 打包迁移到其他服务器。

5.1 打包本地镜像(save)

# 基础打包:将镜像打包为tar文件dockersave nginx:1.24.0-onginx-1.24.0.tar# 同时打包多个镜像dockersave-omulti-images.tar nginx:1.24.0 mysql:8.0 redis:7.0

5.2 加载镜像文件(load)

在目标服务器加载打包好的镜像文件,恢复镜像。

# 加载tar镜像文件dockerload-inginx-1.24.0.tar

✅ 优势:保留镜像所有配置、版本、层级,迁移后可直接运行容器,零环境差异。


六、镜像删除与磁盘清理

长期使用Docker会产生大量冗余镜像、悬空镜像,占用磁盘空间,需定期清理。

6.1 删除指定镜像

# 基础删除镜像(镜像无容器依赖时使用)dockerrmi nginx:1.24.0# 强制删除镜像(存在容器依赖也可删除)dockerrmi-fnginx:1.24.0# 通过镜像ID删除dockerrmi-f镜像ID

💡 重点:如果镜像有多个标签,删除单个标签仅移除别名,不会删除镜像本体。

6.2 清理悬空镜像(无用残留镜像)

悬空镜像(dangling image):无标签、无容器引用的残留镜像,纯垃圾文件。

# 清理所有悬空镜像dockerimage prune# 强制清理(无需手动确认)dockerimage prune-f

6.3 批量清理所有未使用镜像

一键清理所有未被容器使用的镜像、网络、缓存,极致释放磁盘空间。

# 清理所有闲置资源(镜像、容器、网络、缓存)dockersystem prune-a# 强制一键清理(生产环境慎用,提前确认)dockersystem prune-a-f

6.4 批量删除所有本地镜像

测试环境重置场景专用,生产环境禁止随意使用。

# 批量删除所有本地镜像dockerrmi-f$(dockerimages-aq)

七、高频命令速查表

功能场景核心命令
查看本地镜像docker images / docker images -a
搜索远程镜像docker search 镜像名
拉取镜像docker pull 镜像名:标签
镜像打标签docker tag 原镜像 新镜像
构建自定义镜像docker build -t 镜像名:标签
打包镜像docker save -o 输出文件.tar 镜像名
加载镜像docker load -i 镜像文件.tar
删除指定镜像docker rmi -f 镜像名/ID
清理悬空镜像docker image prune -f
全盘清理闲置资源docker system prune -a

八、常见问题总结

1、镜像删除失败:有容器依赖

解决方案:先删除关联容器docker rm -f 容器ID,再删除镜像,或直接docker rmi -f 镜像ID强制删除。

2、打包迁移后镜像无标签

解决方案:打包时必须指定镜像名:标签,不要仅用镜像ID打包,避免加载后无标识。

3、磁盘空间占用过高

解决方案:定期执行docker image prune清理悬空镜像,测试环境可定期执行docker system prune -a全盘清理。


结尾寄语

Docker镜像管理是容器化开发、运维的基础,熟练掌握以上命令,可完美解决镜像查询、版本管控、机器迁移、磁盘冗余等99%的实战问题。
后续持续更新 Docker 容器管理、Docker Compose 编排、镜像仓库搭建、K8s 容器部署等干货,点赞+收藏+关注不迷路!

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询