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