【发布时间】:2015-05-28 20:58:31
【问题描述】:
我需要管理我服务器的 Docker 映像缓存,以确保不会填满磁盘。
我想获取当前未由正在运行的容器使用的所有 Docker 映像的列表。我可以使用以下内容获取正在运行的 Docker 容器的列表:
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fdbe4426220a ubuntu:latest "/bin/bash" 5 days ago Running compassionate_brown
我还可以使用以下内容获取本地 Docker 映像列表:
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu latest 07f8e8c5e660 3 weeks ago 188.3 MB
ubuntu 12.04.5 ac6b0eaa3203 3 weeks ago 132.5 MB
基于以上信息,我可以得出结论,我可以 rmi 和 ubuntu:12.04.5,这不再是必要的,因为没有任何东西基于它运行。
用命令行工具解析这个有点糟糕,ps 的--filter 方法似乎无法让我根据图像名称进行搜索。我无法看到输出更多机器可读的列表,因此我可以使用脚本或其他东西来解析内容以删除旧图像。
Docker 是否提供了一种方法来在它们填满磁盘之前清理旧的未使用图像?对于自动化发布的组织来说,这似乎是一个大问题,所以我假设实际上存在 一种管理它的方法。我在 Ubuntu 14.04 主机上使用 Docker 最新版本 1.6。
【问题讨论】:
-
顺便说一下,不要忘记
docker ps只会显示正在运行的容器,你可能有一些容器以错误结束并且应该正在运行,docker ps -a会显示你所有的容器(或者,如果你只想要 id,就像答案所说的docker ps -aq
标签: docker