Docker卷esdata在MacOS High Sierra主机的映射路径查询
在MacOS High Sierra上查找Docker Compose定义的Elasticsearch esdata卷位置
我来给你捋捋在MacOS High Sierra上怎么找到这个esdata卷的位置哈~
因为Mac上的Docker是运行在一个轻量级虚拟机里的,不是直接跑在主机系统上,所以你直接在Mac本地找不到这个命名卷的目录,得用下面这些方法:
方法一:用Docker命令查看卷的详细信息
直接在终端运行这个命令,就能拿到卷的所有信息:
docker volume inspect esdata
命令返回的JSON结果里,Mountpoint字段就是这个卷在Docker虚拟机内部的实际路径,比如可能是/var/lib/docker/volumes/esdata/_data。不过这个路径是虚拟机里的,不是你Mac主机的本地路径。
方法二:直接在Mac主机访问卷内容
如果想在Mac本地直接查看或修改这个卷里的数据,可以这么做:
- 首先通过
screen命令进入Docker虚拟机的终端:screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty - 进入后输入虚拟机的用户名(默认是
root)和密码(如果没改过可能是空,或者你设置过的密码) - 进去之后,就可以用方法一里拿到的
Mountpoint路径,直接cd进去查看Elasticsearch的数据了
更省心的办法:改用绑定挂载
要是你以后想直接在Mac本地就能找到数据,不如修改你的docker-compose.yml,把命名卷改成绑定挂载,直接映射到Mac上的一个本地目录:
修改后的配置示例:
elasticsearch: image: elasticsearch:2.3.5 volumes: - ./esdata:/usr/share/elasticsearch/data # 这里可以用相对路径,或者绝对路径比如/Users/yourname/esdata ports: - 9200:9200 - 9300:9300
这样一来,./esdata就是你当前docker-compose.yml所在文件夹下的esdata目录,直接就能在Mac上打开查看数据了。
内容的提问来源于stack exchange,提问作者Héctor Valls
相关产品推荐
相关产品推荐

