Docker 清理命令集锦

本文介绍了如何使用Docker管理容器,包括杀死运行容器、删除停止容器和镜像,以及如何为常用命令创建别名。此外,还展示了如何运行、保存镜像、检查运行中的容器并运行新的镜像。

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



杀死所有正在运行的容器

复制代码代码如下:
docker kill $(docker ps -a -q)

 删除所有已经停止的容器

复制代码代码如下:
docker rm $(docker ps -a -q)

 删除所有未打 dangling 标签的镜像

复制代码代码如下:
docker rmi $(docker images -q -f dangling=true)

 删除所有镜像

复制代码代码如下:
docker rmi $(docker images -q)

 为这些命令创建别名

复制代码代码如下:
# ~/.bash_aliases

# 杀死所有正在运行的容器.
alias dockerkill='docker kill $(docker ps -a -q)'

# 删除所有已经停止的容器.
alias dockercleanc='docker rm $(docker ps -a -q)'

# 删除所有未打标签的镜像.
alias dockercleani='docker rmi $(docker images -q -f dangling=true)'

# 删除所有已经停止的容器和未打标签的镜像.
alias dockerclean='dockercleanc || true && dockercleani'

另附上docker常用命令

 docker version #查看版本

 docker search tutorial#搜索可用docker镜像

 docker pull learn/tutorial #下载镜像

 docker run learn/tutorial echo "hello word"#在docker容器中运行hello world!

 docker run learn/tutorial apt-get install -y ping#在容器中安装新的程序

保存镜像

首先使用docker ps -l命令获得安装完ping命令之后容器的id。然后把这个镜像保存为learn/ping。
 提示:
 1.运行docker commit,可以查看该命令的参数列表。
 2.你需要指定要提交保存容器的ID。(译者按:通过docker ps -l 命令获得)
 3.无需拷贝完整的id,通常来讲最开始的三至四个字母即可区分。(译者按:非常类似git里面的版本号)
 正确的命令:
docker commit 698 learn/ping

运行新的镜像

docker run lean/ping ping www.google.com

检查运行中的镜像

现在你已经运行了一个docker容器,让我们来看下正在运行的容器。
 使用docker ps命令可以查看所有正在运行中的容器列表,使用docker inspect命令我们可以查看更详细的关于某一个容器的信息。
 目标:

查找某一个运行中容器的id,然后使用docker inspect命令查看容器的信息。
 提示:

可以使用镜像id的前面部分,不需要完整的id。
 正确的命令:
docker inspect efe

<think>我们正在讨论如何清理Docker的缓存数据,包括构建缓存、未使用的镜像、容器和其他资源。根据引用内容,我们可以总结出以下清理命令和注意事项: 清理Docker缓存的主要命令是`docker system prune`,它可以清理未使用的容器、网络、镜像(默认不包括Tag为none的)和悬空的镜像。如果需要清理所有未使用的镜像(不仅仅是悬空的),可以加上`-a`参数。如果要同时清理未使用的卷,可以加上`--volumes`参数。 另外,还可以使用`docker rmi`命令来删除指定的镜像(通过镜像ID或名称),但需要谨慎使用,确保删除的镜像不再需要。 此外,还可以单独清理未使用的卷、网络和未标记为悬挂的镜像,但要注意这些操作可能会影响正在运行的容器。 下面,我将详细介绍这些清理命令: 1. **清理所有未使用的资源(容器、网络、镜像、卷)**: ```bash docker system prune -a --volumes ``` 注意:这个命令会删除所有未使用的资源,包括未使用的镜像(不仅仅是悬空的)、停止的容器、未使用的网络和未使用的卷。使用前请确保这些资源不再需要。 2. **仅清理悬空镜像(未被任何镜像引用的中间层镜像)**: ```bash docker image prune ``` 3. **清理所有未被使用的镜像(包括没有被任何容器引用的镜像)**: ```bash docker image prune -a ``` 4. **清理停止的容器**: ```bash docker container prune ``` 5. **清理未使用的网络**: ```bash docker network prune ``` 6. **清理未使用的卷**: ```bash docker volume prune ``` 7. **删除指定的镜像**: ```bash docker rmi <镜像ID1> <镜像ID2> ... ``` 8. **删除所有未被使用的卷(注意:这可能会删除重要数据,请确保卷中没有重要数据)**: ```bash docker volume prune -f ``` **注意事项**: - 在执行清理命令之前,请确保你不再需要这些资源,因为操作是不可逆的。 - 清理镜像时,如果镜像正在被容器使用(即使容器已停止),则不会被删除。因此,在清理镜像前,最好先清理容器。 - 使用`docker system prune -a`会删除所有未被使用的镜像,包括那些可能以后会用到的镜像,所以请谨慎使用。 - 如果只想清理构建缓存(Build Cache),可以使用`docker builder prune`命令Docker 18.09及以上版本支持): ```bash docker builder prune ``` 这个命令会删除所有构建缓存,包括未使用的构建缓存和悬空的构建缓存。如果要删除所有构建缓存(包括正在被使用的),可以加上`-a`参数,但一般不推荐,因为会影响后续构建速度。 **清理构建缓存**: 构建缓存是在构建Docker镜像过程中产生的中间层。随着构建次数的增加,这些缓存会占用大量磁盘空间。清理构建缓存的命令有: ```bash # 删除所有未使用的构建缓存 docker builder prune # 删除所有构建缓存(包括正在使用的,慎用) docker builder prune -a -f ``` **总结清理步骤**: 1. 停止并删除不再需要的容器。 2. 删除不再使用的镜像。 3. 清理构建缓存(使用`docker builder prune`)。 4. 如果磁盘空间仍然不足,可以考虑使用`docker system prune -a --volumes`进行彻底清理。 请根据你的实际需求选择合适的命令。如果不确定,可以先执行`docker system prune`(不带`-a`)来清理悬空资源,这样相对安全。 §§相关问题§§ 1. Docker清理缓存后如何恢复被误删的镜像? 2. 如何定期自动清理Docker缓存? 3. Docker磁盘空间不足的常见原因及解决方法有哪些? 4. 如何查看Docker磁盘使用情况?</think>### Docker 清理缓存命令指南 以下是清理 Docker 缓存和未使用资源的完整命令总结,根据引用内容整理[^1][^2][^3]: #### 一、基础清理命令 1. **清理所有未使用资源**(容器/网络/镜像/构建缓存): ```bash docker system prune -a ``` - 删除所有停止的容器、未使用的网络、悬空镜像和构建缓存 - 添加 `--volumes` 可同时清理未使用的卷[^2] - **注意**:此操作不可逆,请先确认资源不再需要 2. **仅清理悬空镜像**(未被任何容器引用的中间层镜像): ```bash docker image prune ``` 3. **清理所有未使用镜像**(包括未被容器引用的最终镜像): ```bash docker image prune -a ``` #### 二、针对性清理命令 1. **清理构建缓存**: ```bash # 删除所有未使用的构建缓存(Docker 18.09+) docker builder prune # 强制清理所有构建缓存(包括正在使用的) docker builder prune -a -f ``` 2. **清理容器相关资源**: ```bash # 删除所有停止的容器 docker container prune # 删除指定状态的容器 docker rm $(docker ps -a -f status=exited -q) ``` 3. **清理卷和网络**: ```bash # 清理未使用的卷 docker volume prune # 清理未使用的网络 docker network prune ``` #### 三、高级清理技巧 1. **选择性删除镜像**: ```bash # 删除指定镜像(支持多个ID) docker rmi <IMAGE_ID_1> <IMAGE_ID_2> # 删除所有悬空镜像 docker rmi $(docker images -f "dangling=true" -q) ``` 2. **磁盘空间深度清理**: ```bash # 组合命令清理所有资源+卷) docker system prune -a --volumes # 清理超过2周的未使用镜像 docker image prune -a --filter "until=336h" ``` #### 四、清理前后验证 1. 查看磁盘使用情况: ```bash docker system df ``` ``` TYPE TOTAL ACTIVE SIZE RECLAIMABLE Images 15 8 3.2GB 1.1GB (34%) Containers 12 5 1.2GB 810MB (67%) Local Volumes 7 3 550MB 210MB (38%) Build Cache 45 0 1.8GB 1.8GB ``` 2. 查看可清理资源: ```bash docker system df -v ``` > **重要提示**:生产环境建议先执行 `docker system prune --dry-run` 预览清理项[^1],清理后无法恢复数据,请谨慎操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值