已停止的泊坞窗容器中的磁盘pipe理(清理)

我正在虚拟机上运行一个elasticsearch docker容器,最近elasticsearch失败,容器刚刚停止。 原因 – 我的SSD缺less空间。

我可以很容易地清理我的索引,但真正的问题在于,我实际上无法启动docker工作。 容器在启动后立即停止,无法通过Web UI或bash清理空间。

我怎样才能清理我的磁盘在一个停止的容器,我无法启动?

假设您使用的是官方的elasticsearch映像 ,Elasticsearch数据目录将是一个卷(请注意该映像的DockerfileVOLUME /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"属性将描述卷在主机文件系统上的位置。 当容器启动时,这个目录被简单地绑定到容器的挂载名称空间中; 您在主机上的此目录中所做的任何更改都将在启动时反映到容器中。