docker特殊问题处理2——docker批量删除标签为none的镜像以及常用docker命令

本文介绍了如何在Docker环境中管理无标签(dangling)镜像,包括查找、识别和安全删除这些占用空间但未被使用的镜像,以提升系统稳定性和存储效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在实际利用docker构建编译运行项目时,会产生大量不同版本标签为none的镜像。

这种镜像在Docker官方文档中被称作dangling images,指的是没有标签并且没有被容器使用的镜像。如果不及时清理,会占用大量的存储空间,对于系统的稳定性很不友好。

详细的资料说明请参阅官网信息:

https://docs.docker.com/config/pruning/

1.查看所有的镜像

通过images命令,可以查看目前docker环境所有构建的镜像,具体可查看镜像的名称,标签,创建时间和镜像大小等信息。

docker images

2.列出所有标签为“none”的镜像

此步骤是为了确认需要删除的镜像信息。

docker images --filter "dangling=true"

3.删除所有标签为“none”的镜像

使用以下命令删除所有带有标签为 “none” 的镜像。

需要特别注意的是,删除镜像是不可逆的操作,请谨慎使用。

方案一:docker rmi $(docker images -f "dangling=true" -q)

方案二:docker image prune

4.也可以使用rmi命令单个操作删除(附常用命令)

需要注意的是,需要先删除容器或者停止,才能删除对应的镜像。

1.查看容器:
docker ps(正在运行的)/docker ps -a(全部)

2.删除容器:
docker rm id/name

3.查看镜像:
docker images(正在使用的)/docker images -a(全部)

4.删除镜像:
docker rmi id/name

5.加载镜像:
docker load -i 镜像保存文件位置
eg:docker load test.tar

6.保存镜像:
docker save 镜像名/镜像ID -o 镜像保存位置和名字(镜像名必须按照仓库名:标签取值)
eg:docker save openjdk:17-jdk-alpine -o ./openjdk17.tar


7.通过docker-compose进入容器内部操作(服务名称指的是compose文件中的服务名,并非是容器名)
docker-compose exec 服务名称 /bin/bash

8.查看当前docker的所有网络信息
docker network ls

9.创建docker自定义网络并使用网络驱动
备注:默认情况下,如果你不指定驱动,Docker 会使用 bridge 驱动。
bridge驱动使用Linux桥接功能,允许容器连接到同一个虚拟网络,并通过 NAT 与外部通信。
docker network create --driver=bridge testnetwork

10.查看某一网络的详细信息
docker network inspect testnetwork

11.进入容器内部操作
docker exec -it 495616fb3523 bash
docker exec -it emqx01_server sh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值