docker 删除镜像

  1. 查看现有镜像
bash 复制代码
# 列出所有镜像
docker images

# 输出示例:
REPOSITORY                  TAG       IMAGE ID       CREATED       SIZE
chaitin/safeline-mgt-api    latest    68f38ece5d03   2 years ago   595MB
chaitin/safeline-mario      latest    f15fa779a859   2 years ago   198MB
chaitin/safeline-detector   latest    fad15e0fecbe   2 years ago   234MB
postgres                    15.2      bf700010ce28   3 years ago   379MB
redis                       7.0.10    33e3db53b328   3 years ago   117MB
  1. 删除镜像
bash 复制代码
# 根据IMAGE ID删除
docker rmi 68f38ece5d03
# 或根据REPOSITORY:TAG删除
docker rmi chaitin/safeline-mgt-api:latest

3.常见错误及解决方案

错误1:镜像被容器使用

vbnet 复制代码
Error response from daemon: conflict: unable to delete 68f38ece5d03 (cannot be forced) - image is being used by running container a0ae66de022d

解决方案:

ini 复制代码
# 方案1:先删除使用该镜像的容器
docker rm 容器ID

# 方案2:强制删除镜像
docker rmi -f 镜像ID

# 方案3:查看哪些容器在使用该镜像
docker ps -a --filter ancestor=镜像名

错误2:权限不足

bash 复制代码
# 使用sudo执行(如果在Linux系统中)
sudo docker rmi 镜像ID

实用技巧

清理所有无用镜像

arduino 复制代码
# 删除所有未使用的镜像(推荐)
docker image prune

# 强制删除所有未使用的镜像(不询问)
docker image prune -a -f

结合条件删除

perl 复制代码
# 删除特定模式的镜像
docker images | grep "pattern" | awk '{print $3}' | xargs docker rmi

# 删除创建时间超过24小时的镜像
docker images --format "{{.ID}} {{.CreatedAt}}" | grep "24 hours" | awk '{print $1}' | xargs docker rmi

常用选项说明

选项 说明
-f, --force 强制删除镜像(即使有容器依赖)
--no-prune 不删除未打标签的父镜像

注意事项

  1. 数据备份:删除前确认镜像不再需要,或已推送到镜像仓库
  2. 依赖关系:确保没有容器(包括停止的容器)依赖该镜像
  3. 标签问题:同一个镜像ID可能有多个标签,删除标签不等于删除镜像层
  4. 磁盘空间 :删除后可以使用 docker system df 查看释放的磁盘空间

如果需要更详细的帮助,可以查看官方文档:

bash 复制代码
docker rmi --help
相关推荐
orion571 天前
Missing Semester Class1:course overview and introduction of shell
linux
用户120487221612 天前
Linux驱动编译与加载
linux·嵌入式
用户805533698032 天前
Input 子系统架构:Core、Handler、Driver 三层是怎么协作的
linux·嵌入式
用户805533698032 天前
RK-Forge外设系列开篇 - 把板子从「能启动」变成「能用」:Ethernet/SPI/MMC 三个纯接线外设
linux·github·嵌入式
七歌杜金房2 天前
我终于又有了自己的 Linux 电脑
linux·debian·mac
tntxia3 天前
linux curl命令详解_curl详解
linux
扛枪的书生4 天前
Linux 网络管理器用法速查
linux
顺风尿一寸4 天前
Java Socket 内核之旅:从 SocketChannel.read() 到 tcp_recvmsg 与 epoll 的完整调用链路
linux
XIAOHEZIcode4 天前
Ubuntu 终端美化全栈指南:Bash 到 Kitty 踩坑实录
linux·ubuntu·命令行
唐青枫4 天前
别再只会用 cron:Linux systemd Timer 定时任务实战详解
linux