2016-12-14 47 views
0

我正在虚拟机上运行elasticsearch码头集装箱,最近出现了elasticsearch故障,容器刚刚停止。原因 - 我的ssd空间不足。已停止的码头集装箱中的磁盘管理(清理)

我可以轻松地清理我的索引,但真正的问题在于我实际上无法启动Docker来执行此操作。容器在启动后立即停止,无法通过Web UI或bash清理空间。

如何清理我的磁盘在停止的容器中,我无法启动?

回答

1

假设您使用的是official elasticsearch image,Elasticsearch数据目录将是一个卷(介绍该图像的Dockerfile中的VOLUME /usr/share/elasticsearch/data语句)。

您现在可以启动另一个容器,使用--volumes-from选项来执行任何清理任务,你认为有必要安装原来的容器的体积:

docker run --rm -it \ 
    --volumes-from=<original-elasticsearch-container> \ 
    ubuntu:latest \ 
    /bin/bash 

如果失败了,你也可以你Elasticsearch容器上运行docker inspect并在主机文件系统中找到该卷的目录(假设您使用默认的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"属性将描述您的主机的文件系统卷的位置。当容器启动时,这个目录被简单地绑定到容器的挂载名称空间中;您在主机上的此目录中所做的任何更改都会在启动时反映到容器中。