Docker 入门教程(三):镜像操作命令

发布于:2025-06-29 ⋅ 阅读:(17) ⋅ 点赞:(0)

🐳 Docker 入门教程(三):镜像操作命令

镜像是 Docker 的基础组件之一,本节我们全面梳理如何获取、查看、管理和构建镜像。配合示例和常用参数,确保能灵活使用这些命令完成日常开发任务。


获取镜像:docker pull

从远程仓库(默认 Docker Hub)下载镜像非常简单:

docker pull nginx

拉取指定版本:

docker pull redis:6.2

拉取指定平台架构的镜像(比如 M1/M2 芯片):

docker pull --platform linux/amd64 node

如果你不指定 tag,Docker 会默认使用 latest


查看镜像:docker images

查看本地所有镜像:

docker images

示例输出:

REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
nginx        latest    08b152afcfae   3 days ago     133MB
redis        6.2       9bdb3d4e3f75   1 week ago     105MB

几个常用参数:

  • -a / --all:显示所有中间层镜像(默认只显示最终层)
  • -q / --quiet:只输出镜像 ID,用于脚本中
  • --filter dangling=true:过滤出无 tag 的“悬空镜像”

例子:查看所有悬空镜像的 ID

docker images -q --filter dangling=true

删除镜像:docker rmi

删除单个镜像:

docker rmi nginx

一次删除多个:

docker rmi nginx redis

如果镜像被容器使用,普通删除会失败。这时可以使用 -f 强制删除:

docker rmi -f nginx

注意:强制删除前请确保相关容器不再需要该镜像。


搜索镜像:docker search

可以在命令行搜索 Docker Hub 上的公开镜像:

docker search mysql

结果中会显示镜像名称、描述、星标数等。

也可以加过滤条件,例如只显示星标大于 5000 的:

docker search mysql --filter=stars=5000

镜像打标签:docker tag

给镜像添加一个新的名称或版本号:

docker tag nginx myrepo/nginx:v1

这不会复制镜像,只是起了一个别名。

在你准备将镜像上传到仓库时,这一步是必要的,因为仓库通常要求格式为:仓库名/镜像名:版本


镜像详情与历史:inspecthistory

查看镜像详细元信息:

docker inspect nginx

这是一个 JSON 输出,包含镜像的配置、作者、构建参数等,非常适合调试或检查。

想看看这个镜像是如何一步步构建出来的,可以使用:

docker history nginx

输出会显示构建的每一层命令、大小和时间等内容。


导出与导入镜像

镜像可以导出为文件用于备份或离线传输

docker save nginx -o nginx.tar

导入镜像文件:

docker load -i nginx.tar

这个功能在公司内部传输、无外网环境中特别实用。


清理无用镜像:docker image prune

长期使用 Docker,磁盘会迅速被未使用的旧镜像占满。可以用下面的命令清理它们。

只删除“悬空镜像”(无 tag):

docker image prune

删除所有未被容器使用的镜像(包括打过标签的):

docker image prune -a

如果你还想清除容器、网络等内容:

docker system prune -a

该命令会删除所有未使用的资源,请三思。


快速命令汇总表

操作 命令
拉取镜像 docker pull 镜像名[:tag]
查看镜像列表 docker images
删除镜像 docker rmi 镜像名
打标签 docker tag 原镜像 新名称:tag
查看详情 docker inspect 镜像名
查看历史 docker history 镜像名
搜索镜像 docker search 关键词
导出/导入 docker save / docker load
清理镜像 docker image prune / docker system prune