2023-09-23 更新 382 阅读
温馨提示:
本文最后更新于2023年09月23日,已超过160天没有更新,若内容或图片失效,请留言反馈。

在使用 Docker 的过程中,经常会留下一些不需要的容器和镜像。
下面一些常用命令来删除&清理相关的容器和镜像。

一:容器

① 列出所有的容器

docker ps -a

② 列出所有的容器 ID

docker ps -aq

③ 杀死所有的容器

docker kill $(docker ps -aq)

④ 停止所有的容器

docker stop $(docker ps -aq)

⑤ 删除所有的容器

docker rm $(docker ps -aq)

⑥ 停止所有异常的容器

docker ps -a | grep "Exited" | awk '{print $1}' | xargs docker stop

⑦ 删除所有异常停止的容器

docker ps -a | grep "Exited" | awk '{print $1}' | xargs docker rm

二:镜像

① 通过标签删除镜像

下面两个都可以删除镜像:

docker rmi [image]

或者:

docker image rm [image]

支持的子命令如下:

-f, -force: 强制删除镜像,即便有容器引用该镜像;
-no-prune: 不要删除未带标签的父镜像;

② 通过 ID 删除镜像

除了通过标签名称来删除镜像,我们还可以通过指定镜像 ID, 来删除镜像,如:

docker rmi b7b28af77ffe

③ 批量删除无 tag 标签镜像

在 Docker 构建镜像过程产生的临时镜像,或者遗留下来的垃圾镜像,可以通过以下命令删除。

docker ps -a|grep "Exited" | awk '{print $1}' | xargs docker stop
docker ps -a|grep "Exited" | awk '{print $1}' | xargs docker rm
docker images|grep none|awk '{print $3}'|xargs docker rmi

④ 删除所有镜像

docker rmi $(docker images -q)

⑤ 清理镜像

我们在使用 Docker 一段时间后,系统一般都会残存一些临时的、没有被使用的镜像文件,可以通过以下命令进行清理:

docker image prune

支持的子命令有:

-a, --all: 删除所有没有用的镜像,而不仅仅是临时文件;
-f, --force:强制删除镜像文件,无需弹出提示确认;