Docker 在应用文件夹中绑定(bind) Elasticsearch 卷

标签 docker elasticsearch docker-compose

我有以下 docker-compose 文件:

version: "3.3"
services:    
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.1.1
    volumes:
      - esdata:/usr/share/elasticsearch/data
    environment:
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - discovery.type=single-node
    ports:
      - "9300:9300"
      - "9200:9200"

volumes:
  esdata:

(为了清楚起见,我删除了其他服务)
我可以在/var/lib/docker/volumes/ 中看到卷项目名称 _esdata 但我希望能够在 docker-compose.yml 所在的目录中创建卷,但我没有找到这样做的方法。

灵感来自 How to set a path on host for a named volume in docker-compose.yml , 我试过
version: "3.3"
services:    
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.1.1
    volumes:
      - esdata:/usr/share/elasticsearch/data
    environment:
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - discovery.type=single-node
    ports:
      - "9300:9300"
      - "9200:9200"

volumes:
  esdata:
    driver: local
    driver_opts:
      type: 'none'
      o: 'bind'
      device: './' 

但这会引发以下异常:
Caused by: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes 

请让我知道我是否应该发布完整的堆栈跟踪或任何其他相关信息。

最佳答案

如果您使用 ./,该卷将安装在同一个文件夹中(我之前通过这样做遇到过权限问题,所以您知道)

version: "3.3"
services:    
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.1.1
    volumes:
      - ./esdata:/usr/share/elasticsearch/data
    environment:
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - discovery.type=single-node
    ports:
      - "9300:9300"
      - "9200:9200"

volumes:
  esdata:

关于Docker 在应用文件夹中绑定(bind) Elasticsearch 卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52373356/

相关文章:

amazon-web-services - 如何通过 aws ES 服务设置自己的 Kibana 客户端

elasticsearch - 此ElasticSearch查询如何工作?

Elasticsearch NEST 搜索查询太慢

docker-compose 提供环境变量的可扩展方式

python - 获取 JSONDecodeError : Expecting value: line 1 column 1 (char 0) with Python + Zipline + Docker + Jupyter

docker - 测试容器中的体积

docker - Hyperledger Fabric错误-尝试联系2个对等方。最后一个错误是错误:在截止日期之前无法连接

image - 如何在 Docker 的 ubuntu 中安装 JLink?

docker : When creating a machine, VT-X/AMD 已启用

docker - APPDATA 在默认的 docker-compose.override 文件中在哪里初始化