Docker: 一些重影图像正在扰乱内存

Docker: some ghost images are messing up with the memory

我和我的团队经常使用 docker space。通常我们通过删除悬挂图像来解决这个问题。但是现在有 5 运行 个容器和 7 个图像并且内存已满。甚至日志文件也无法写入其输出。因此,正如我所描述的那样,大约有 15 张图像(docker 图像 --all),但是当我键入 docker info 时,它说有 132 张图像。

root@dockersrv:/var/lib/docker# docker info
Containers: 10
Images: 132
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 154
Dirperm1 Supported: true
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.16.0-30-generic
Operating System: Ubuntu 14.04.3 LTS
CPUs: 2
Total Memory: 15.67 GiB
Name: dockersrv
ID: ``
WARNING: No swap limit support

据我所知,有人设法删除了注册表容器,我们创建了一个新容器。我的想法是,所有这些图像都与旧注册表相关联。所以想知道如何删除它们并释放一些 space。关于如何增加其内存以及除了删除悬挂图像和旧容器之外执行什么的任何其他建议将不胜感激。

docker images -a 将显示您的所有图片。但这也将包含您现有图像的子图像。

'clean up' 您的 docker 环境的第一步是删除在您执行 docker ps -a 时显示的已停止 docker 容器。只要图像(容器)实例存在,就不能删除 docker 个图像。即使不再 运行。

docker rm -v `docker ps -a`

删除已停止的容器后,您可以删除未使用的图像,例如:

docker images -q |xargs docker rmi

如您所见,有多个 ways/commands 可以删除您的容器和映像。 -v选项(删除容器时使用)将删除容器卷,这也是一个重要部分。

docker 卷存储在 /var/lib/docker/volumes 中,其中包含容器的内容。问题是有关已删除的旧注册表的一些问题。比检查注册表的卷是否也被删除非常重要。

在较新版本的 docker 中,您可以使用以下方法删除悬空卷:

docker volume rm `docker volume ls -q -f dangling=true`

您也可以只删除正确的文件夹+重新启动docker。

sudo rm -r /var/lib/docker/volumes/the-specific-volume