已停止的泊坞窗容器中的磁盘pipe理(清理)
我正在虚拟机上运行一个elasticsearch
docker容器,最近elasticsearch
失败,容器刚刚停止。 原因 – 我的SSD缺less空间。
我可以很容易地清理我的索引,但真正的问题在于,我实际上无法启动docker工作。 容器在启动后立即停止,无法通过Web UI或bash清理空间。
我怎样才能清理我的磁盘在一个停止的容器,我无法启动?
假设您使用的是官方的elasticsearch
映像 ,Elasticsearch数据目录将是一个卷(请注意该映像的Dockerfile
的VOLUME /usr/share/elasticsearch/data
Dockerfile
VOLUME /usr/share/elasticsearch/data
语句)。
现在可以启动另一个容器,使用--volumes-from
选项安装原始容器的卷--volumes-from
以执行您认为需要的任何清理任务:
docker run --rm -it \ --volumes-from=<original-elasticsearch-container> \ ubuntu:latest \ /bin/bash
如果失败,你也可以在你的Elasticsearch容器上运行docker inspect
,并在主机文件系统中find卷的目录(假设你使用默认的local
卷驱动)。 在JSON输出中查找“ Mounts
部分:
"Mounts": [ { "Name": "<volume-id>", "Source": "/var/lib/docker/volumes/<volume-id>/_data", "Destination": "/usr/share/elasticsearch/data", "Driver": "local", "Mode": "", "RW": true, "Propagation": "" } ],
"Source"
属性将描述卷在主机文件系统上的位置。 当容器启动时,这个目录被简单地绑定到容器的挂载名称空间中; 您在主机上的此目录中所做的任何更改都将在启动时反映到容器中。