use*_*084 6 elasticsearch docker docker-compose
我有以下 Docker-compose 3 文件:
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.2.4
container_name: elasticsearch
...
...
volumes:
- /path/to/elasticsearch:/usr/share/elasticsearch/data
- /path/to/elasticsearch/backup:/opt/elasticsearch/backup
ports:
- 9200:9200
networks:
- elasticnetwork
Run Code Online (Sandbox Code Playgroud)
所以,我已经将我的 path.repo 设置为 /path/to/elasticsearch/backup。但是,运行 curl http://127.0.0.1:9200/_nodes/?pretty 会导致没有 path.repo:
"settings" : {
...
"path" : {
"logs" : "/usr/share/elasticsearch/logs",
"home" : "/usr/share/elasticsearch"
},
...
},
Run Code Online (Sandbox Code Playgroud)
我期待"repo" : ["/opt/elasticsearch/backup"]
在路上看到。
Thi*_*lak 11
如文档中所述,您必须path.repo
在elasticsearch.yml
文件中设置。此文件位于/usr/share/elasticsearch/config/
图像中的目录中。
因此,您的撰写文件应如下所示:
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.2.4
container_name: elasticsearch
volumes:
- elastic-data:/usr/share/elasticsearch/data
- elastic-backup:/usr/share/elasticsearch/backup
- ./elasticsearch/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
ports:
- 9200:9200
environment:
discovery.type: single-node
volumes:
elastic-data:
elastic-backup:
Run Code Online (Sandbox Code Playgroud)
你elasticsearch.yml
应该有这些:
cluster.name: "docker-cluster"
network.host: 0.0.0.0
# minimum_master_nodes need to be explicitly set when bound on a public IP
# # set to 1 to allow single node clusters
# # Details: https://github.com/elastic/elasticsearch/pull/17288
# discovery.zen.minimum_master_nodes: 1
path.repo: ["/usr/share/elasticsearch/backup"]
Run Code Online (Sandbox Code Playgroud)
启动容器后,我可以repo
在http://127.0.0.1:9200/_nodes/?pretty
响应中看到:
"settings" : {
"cluster" : {
"name" : "docker-cluster"
},
"node" : {
"name" : "3cUpSf-"
},
"path" : {
"logs" : "/usr/share/elasticsearch/logs",
"home" : "/usr/share/elasticsearch",
"repo" : [
"/usr/share/elasticsearch/backup"
]
},
Run Code Online (Sandbox Code Playgroud)
来自评论:
在此映像中创建了一个名为 elasticsearch 的用户,并且 Elasticsearch 二进制文件在该用户的上下文中运行,而不是 root 用户,因此该用户
/opt
对容器内的目录没有写权限,但它对/usr/share/elastisearch
目录有足够的权限。这就是我在上面的例子中使用这个目录而不是/opt/
目录的原因。
fla*_*ovs 11
version: "3"
services:
elasticsearch:
image: elasticsearch:6.8.2
environment:
- 'path.repo=/opt/elasticsearch/backup'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5980 次 |
最近记录: |