如何从本地系统中删除 Docker 镜像

DockerDockerBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

Docker 已成为开发者和 IT 专业人员的必备工具,可实现应用程序的高效容器化和部署。然而,随着你的 Docker 环境不断扩展,管理本地系统中的 Docker 镜像变得至关重要。本教程将指导你完成从本地系统中删除 Docker 镜像的过程,涵盖实际场景和最佳实践,以优化你的 Docker 工作流程。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ImageOperationsGroup -.-> docker/rmi("Remove Image") docker/ImageOperationsGroup -.-> docker/images("List Images") docker/ImageOperationsGroup -.-> docker/search("Search Images in Repository") docker/ImageOperationsGroup -.-> docker/save("Save Image") docker/ImageOperationsGroup -.-> docker/load("Load Image") subgraph Lab Skills docker/rmi -.-> lab-411585{{"如何从本地系统中删除 Docker 镜像"}} docker/images -.-> lab-411585{{"如何从本地系统中删除 Docker 镜像"}} docker/search -.-> lab-411585{{"如何从本地系统中删除 Docker 镜像"}} docker/save -.-> lab-411585{{"如何从本地系统中删除 Docker 镜像"}} docker/load -.-> lab-411585{{"如何从本地系统中删除 Docker 镜像"}} end

理解 Docker 镜像

Docker 镜像是 Docker 容器的基本构建块。它们是只读模板,包含运行特定应用程序或服务所需的文件、库和依赖项。Docker 镜像存储在 Docker 注册表中,该注册表可以是像 Docker Hub 这样的公共注册表,也可以是私有注册表。

什么是 Docker 镜像?

Docker 镜像是一个轻量级、独立且可执行的包,其中包含运行应用程序所需的一切,包括代码、运行时、系统工具、库和设置。Docker 镜像是创建 Docker 容器的基础,而 Docker 容器是这些镜像的运行实例。

Docker 镜像层

Docker 镜像是由一系列层构建而成的,其中每一层都代表一条 Dockerfile 指令。这些层会被缓存,这意味着如果某一层没有变化,Docker 可以重复使用它而不是重新构建,从而使构建过程更高效。

graph TD A[基础镜像] --> B[第 1 层] B --> C[第 2 层] C --> D[第 3 层] D --> E[应用代码]

拉取和推送 Docker 镜像

你可以使用 docker pull 命令从注册表(如 Docker Hub)拉取 Docker 镜像。同样,你可以使用 docker push 命令将自己的 Docker 镜像推送到注册表。

## 从 Docker Hub 拉取镜像
docker pull ubuntu:22.04

## 将镜像推送到 Docker Hub
docker push your-username/your-image:latest

Docker 镜像命名规范

Docker 镜像遵循特定的命名规范,包括注册表主机、仓库名称和标签。完整的镜像名称如下所示:registry-host/repository-name:tag

从本地系统中删除 Docker 镜像

在使用 Docker 时,你可能需要从本地系统中删除 Docker 镜像。这可以使用 docker rmi 命令来完成。

删除单个镜像

要删除单个 Docker 镜像,请使用以下命令:

docker rmi image-name:tag

image-name:tag 替换为你要删除的镜像的名称和标签。

删除所有未使用的镜像

如果你想删除所有未使用的 Docker 镜像,可以使用以下命令:

docker image prune

此命令将删除所有悬空镜像,即那些没有标签且未被任何容器使用的镜像。

删除所有镜像

要从本地系统中删除所有 Docker 镜像,可以使用以下命令:

docker rmi $(docker images -a -q)

此命令将删除所有镜像,包括当前正在被容器使用的镜像。

通过过滤删除镜像

你还可以根据某些条件(如镜像名称或镜像大小)进行过滤来删除 Docker 镜像。例如,要删除所有大于 100MB 的镜像,可以使用以下命令:

docker rmi $(docker images --filter "size>100M" -q)

此命令将删除所有大于 100MB 的镜像。

实际场景与最佳实践

删除镜像以释放磁盘空间

你可能需要删除 Docker 镜像的一种常见场景是当本地系统磁盘空间不足时。如果你的镜像数量众多或者单个镜像占用了大量空间,就可能出现这种情况。

要释放磁盘空间,你可以使用 docker image prune 命令删除所有未使用的镜像,或者使用 docker rmi 命令删除特定的镜像。

删除过时的镜像

另一种常见场景是需要删除过时的 Docker 镜像。当你更新了应用程序并需要删除旧镜像时,就会出现这种情况。

要删除过时的镜像,你可以使用 docker rmi 命令删除特定的镜像。你也可以使用 docker image prune 命令删除所有未使用的镜像,这将包括任何过时的镜像。

管理 Docker 镜像的最佳实践

以下是一些管理 Docker 镜像的最佳实践:

  1. 使用命名规范:为你的 Docker 镜像采用一致的命名规范,以便于管理。
  2. 使用镜像标签:为你的 Docker 镜像使用特定的标签,例如版本号或 Git 提交哈希,以便于识别和删除特定的镜像。
  3. 定期清理未使用的镜像:使用 docker image prune 命令定期删除未使用的 Docker 镜像以释放磁盘空间。
  4. 自动化镜像删除:考虑自动化删除 Docker 镜像的过程,例如使用脚本或 CI/CD 管道。
  5. 使用 Docker 注册表:使用 Docker 注册表,如 Docker Hub 或私有注册表,来管理你的 Docker 镜像,并便于与他人共享。

通过遵循这些最佳实践,你可以有效地管理你的 Docker 镜像,并确保本地系统保持干净和高效。

总结

在本全面教程中,你已经学会了如何有效地从本地系统中删除 Docker 镜像。通过了解这个过程并探索实际场景,你现在可以高效地管理你的 Docker 资源,确保 Docker 工作流程简化且优化。无论你是经验丰富的 Docker 用户还是刚刚起步,这些技术都将帮助你在本地系统上保持一个干净且有序的 Docker 环境。