引言:当Docker开始“吃”硬盘
作为一名开发者,你是否曾经兴奋地使用Docker部署各种应用,却发现硬盘空间悄然消失?就像家里不知不觉堆满的杂物,Docker镜像也会在不知不觉中占满你的硬盘空间。
我至今记得那天,当我试图下载一个新镜像时,终端冷漠地显示"no space left on device"。一番调查后,发现Docker已经悄无声息地吞噬了我50GB的硬盘空间!这让我不得不深入研究Docker镜像管理的艺术。
本文将带你全面了解Docker镜像删除的方方面面,从基础命令到高级技巧,让你的硬盘重获自由!
一、Docker镜像基础知识回顾
1.1 镜像是什么?
简单来说,Docker镜像是一个轻量级、独立的可执行软件包,包含运行应用程序所需的一切:代码、运行时、系统工具、系统库和设置。它就像应用程序的"模具",可以用来创建Docker容器。
1.2 镜像的分层结构
Docker镜像采用分层存储架构,每一层都是只读的。当你删除镜像时,实际上是在删除这些层。只有当没有任何镜像或容器使用某层时,该层才会被真正删除。
# 查看镜像分层信息
docker image inspect [IMAGE_NAME]
1.3 镜像与容器的关系
容器是镜像的运行实例。一个镜像可以创建多个容器,只有当所有基于该镜像的容器都被删除后,镜像才能被删除。这就是为什么有时候删除镜像会失败的原因。
二、查看本地镜像:知己知彼,百战不殆
在开始删除之前,我们首先需要了解当前系统中有哪些镜像。
2.1 基本查看命令
# 列出所有镜像
docker images
# 输出示例
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest abc123456 2 days ago 132MB
ubuntu 20.04 def789012 1 week ago 72.8MB
redis alpine ghi345678 3 weeks ago 32.3MB
2.2 高级查看技巧
# 按格式输出,只显示镜像ID
docker images -q
# 按格式输出,只显示仓库名和标签
docker images --format "{
{.Repository}}:{
{.Tag}}"
# 显示镜像大小并排序
docker images --format "{
{.Repository}}:{
{.Tag}}\t{
{.Size}}" | sort -k2 -h
# 查看悬空镜像 (dangling images)
docker ima

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



