清理Docker的container,image与volume
清理所有停止运行的容器:
docker container prune
# or
docker rm $(docker ps -aq)
清理所有悬挂<none>
镜像:
docker image prune
# or
docker rmi $(docker images -qf "dangling=true")
清理所有无用数据卷:
docker volume prune
由于prune
操作是批量删除类的危险操作,所以会有一次确认。 如果不想输入y
来确认,可以添加-f
操作。慎用!
清理停止的容器及其卷
docker rm -lv CONTAINER
-l
是清理link
,v
是清理volume
。 这里的CONTAINER
是容器的name
或ID
,可以是一个或多个。
按需批量清理容器
清除所有已停止的容器,是比较常用的清理。 但有时会需要做一些特殊过滤。
这时就需要使用docker ps --filter
。
比如,显示所有返回值为0
,即正常退出的容器:
docker ps -a --filter 'exited=0'
同理,可以得到其它非正常退出的容器。
目前支持的过滤器有:
- id (container’s id)
- label (label=<key> or label=<key>=<value>)
- name (container’s name)
- exited (int - the code of exited containers. Only useful with –all)
- status (created|restarting|running|removing|paused|exited|dead)
- ancestor (<image-name>[:<tag>], <image id> or <image@digest>) - filters containers that were created from the given image or a descendant.
- before (container’s id or name) - filters containers created before given id or name
- since (container’s id or name) - filters containers created since given id or name
- isolation (default|process|hyperv) (Windows daemon only)
- volume (volume name or mount point) - filters containers that mount volumes.
- network (network id or name) - filters containers connected to the provided network
- health (starting|healthy|unhealthy|none) - filters containers based on healthcheck status
按需批量清理镜像
与ps
类似,images
也支持--filter
参数。
与清理相关,最常用的,当属<none>
了。
docker images --filter "dangling=true"
这条命令,可以列出所有悬挂(dangling)
的镜像,也就是显示为<none>
的那些。
docker rmi $(docker images -qf "dangling=true")
这条组合命令,如果不写入Bash
的alias
,几乎无法使用。 不过还有一条等价命令,非常容易使用。
docker image prune
prune
和images
类似,也同样支持--filter
参数。 其它的filter
有:
- dangling (boolean - true or false)
- label (label=<key> or label=<key>=<value>)
- before (<image-name>[:<tag>], <image id> or <image@digest>) - filter images created before given id or references
- since (<image-name>[:<tag>], <image id> or <image@digest>) - filter images created since given id or references
- reference (pattern of an image reference) - filter images whose reference matches the specified pattern
清理所有无用镜像
这招要慎用,否则需要重新下载。
docker image prune -a