2016-12-14 46 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"屬性將描述您的主機的文件系統卷的位置。當容器啓動時,這個目錄被簡單地綁定到容器的掛載名稱空間中;您在主機上的此目錄中所做的任何更改都會在啓動時反映到容器中。