【问题标题】:Disk management (cleanup) in a stopped docker container停止的 docker 容器中的磁盘管理(清理)
【发布时间】:2016-12-15 03:49:42
【问题描述】:

我在我的虚拟机上运行elasticsearch docker 容器,最近遇到elasticsearch 故障,容器刚刚停止。原因 - 我的 ssd 空间不足。

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

如何清理已停止但无法启动的容器中的磁盘?

【问题讨论】:

    标签: elasticsearch docker docker-container


    【解决方案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" 属性将描述卷在主机文件系统上的位置。当容器启动时,这个目录只是简单地绑定挂载到容器的挂载命名空间中;您在主机上的这个目录中所做的任何更改都会在容器启动时反映在容器中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-01
      • 2020-08-10
      • 1970-01-01
      • 1970-01-01
      • 2017-07-05
      • 1970-01-01
      相关资源
      最近更新 更多