目前,我正在使用主机目录作为弹性搜索数据(/ var / lib / elasticsearch:/ usr / share / elasticsearch / data)的安装点(?)
version: '3'
services:
elasticsearch:
build:
context: .
dockerfile: ./compose/elasticsearch/Dockerfile
args:
- VERSION=${VERSION}
- ELASTICSEARCH_PORT=${ELASTICSEARCH_PORT}
- MEM=${MEM}
- CLUSTER_NAME=${CLUSTER_NAME}
- ENV=${ENV}
container_name: elasticsearch
network_mode: host
environment:
- discovery.type=single-node
volumes:
- /var/lib/elasticsearch:/usr/share/elasticsearch/data
我想按以下方式使用docker的卷。
是否可以将/var/lib/elasticsearch
中的数据移动到data:
?
services:
elasticsearch:
build:
context: .
dockerfile: ./compose/elasticsearch/Dockerfile
args:
- VERSION=${VERSION}
- ELASTICSEARCH_PORT=${ELASTICSEARCH_PORT}
- MEM=${MEM}
- CLUSTER_NAME=${CLUSTER_NAME}
- ENV=${ENV}
container_name: elasticsearch
network_mode: host
environment:
- discovery.type=single-node
volumes:
- data:/usr/share/elasticsearch/data
volumes:
data:
答案 0 :(得分:0)
一旦创建了新容器并装入了docker cp
卷,您就可以使用data
命令从主机复制文件。
docker cp /var/lib/elasticsearch/. elasticsearch:/usr/share/elasticsearch/data/
如果要在启动Elasticsearch容器之前显示数据,还可以在启动Elasticsearch容器之前创建一个虚拟容器。如果您使用docker-compose通过在项目名称前添加docker-compose命名空间来启动弹性搜索,则此方法将无效。
docker container create --name dummy -v data:/root hello-world
docker cp /var/lib/elasticsearch/. dummy:/root/`
docker rm dummy