docker卷-未处理的异常:访问被拒绝(hresult的异常:0x80070005(e\u accessdenied)

6ju8rftf  于 2021-06-10  发布在  ElasticSearch
关注(0)|答案(1)|浏览(633)

我有一个docker文件来运行elk stack

version: '3.7'

services:
  elasticsearch:
    build:
      context: elasticsearch/
      args:
        ELK_VERSION: $ELK_VERSION
    volumes:
      - type: bind
        source: ./elasticsearch/config/elasticsearch.yml
        target: /usr/share/elasticsearch/config/elasticsearch.yml
        read_only: true
      - type: volume
        source: elasticsearch
        target: /usr/share/elasticsearch/data
    ports:
      - "9200:9200"
      - "9300:9300"
    environment:
      ES_JAVA_OPTS: "-Xmx256m -Xms256m"
      discovery.type: single-node
    networks:
      - elkstack

  logstash:
    build:
      context: logstash/
      args:
        ELK_VERSION: $ELK_VERSION
    volumes:
      - type: bind
        source: ./logstash/config/logstash.yml
        target: /usr/share/logstash/config/logstash.yml
        read_only: true
      - type: bind
        source: ./logstash/pipeline
        target: /usr/share/logstash/pipeline
        read_only: true
    ports:
      - "5000:5000/tcp"
      - "5000:5000/udp"
      - "9600:9600"
    environment:
      LS_JAVA_OPTS: "-Xmx256m -Xms256m"
    networks:
      - elkstack
    depends_on:
      - elasticsearch

  kibana:
    build:
      context: kibana/
      args:
        ELK_VERSION: $ELK_VERSION
    volumes:
      - type: bind
        source: ./kibana/config/kibana.yml
        target: /usr/share/kibana/config/kibana.yml
        read_only: true
    ports:
      - "5601:5601"
    networks:
      - elkstack
    depends_on:
      - elasticsearch

networks:
  elkstack:
    driver: bridge

volumes:
  elasticsearch:

当我用docker compose up运行这个docker compose文件时;我得到这个错误堆栈。
错误:对于docker-elk\u elasticsearch\u 1无法为服务创建容器elasticsearch:状态代码不正常,但为500:{“message”:“未处理的异常:访问被拒绝(hresult的异常:0x80070005(e\u accessdenied))“,“stacktrace”:“在windows.ui.notifications.toastnotifier.show(toastnotification通知)\r\n在docker.wpf.promptsharedirectory.d\uu 0.movenext()中,位于c:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\docker.wpf\promptsharedirectory.cs:第26行\r\n---从引发异常的上一个位置开始的堆栈跟踪结束---\r\nsystem.runtime.exceptionservices.exceptiondispatchinfo.throw()\r\n位于system.runtime.compilerservices.taskawaiter.handlenonsuccessanddebuggernotification(task task)\r\n位于docker.apiservices.mounting.FileShareing.d\uu 6.movenext(),位于c:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\docker.apiservices\mounting\FileShareing.cs:line80\r\n---来自引发异常的上一个位置的堆栈结束跟踪---\r\n在system.runtime.exceptionservices.exceptiondispatchinfo.throw()\r\n在system.runtime.compilerservices.taskawaiter.handlenonsuccessanddebuggernotification(task task)在docker.apiservices.mounting.FileShareing.d\u4.movenext()中c:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\docker.apisservices\mounting\filesharing.cs:第47行\r\n---从引发异常的上一个位置开始的堆栈结束跟踪---\r\n在system.runtime.exceptionservices.exceptiondispatchinfo.throw()\r\nsystem.runtime.compilerservices.taskawaiter.handlenonsuccessanddebuggernotification(task task)\r\n位于c:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\docker.httpapi\controllers\filesharingcontroller.cs中的docker.httpapi.controllers.filesharingcontroller.d\uu 2.movenext(),第21行\r\n---上一个位置的堆栈结束跟踪,其中引发了异常---\r\n在system.runtime.exceptionservices.exceptiondispatchinfo.throw()\r\n在system.runtime.compilerservices.taskawaiter.handlenonsuccessanddebuggernotification(任务任务)\r\n在system.threading.tasks.TaskHelperExtensions.d\u 1`1.movenext()\r\n---从引发异常的上一个位置开始的堆栈结束跟踪---\r\n在system.runtime.exceptionservices.exceptiondispatchinfo.throw()\r\n在system.runtime.compilerservices.taskawaiter.handlenonsuccessanddebuggernotification(任务任务)\r\n在system.web.http.controllers.apicontrolleractioninvoker.d\uu 1.movenext()\r\n---来自引发异常的上一个位置的堆栈结束跟踪---\r\nsystem.runtime.exceptionservices.exceptiondispatchinfo.throw()\r\n位于system.runtime.compilerservices.taskawaiter.handlenonsuccessanddebuggernotification(任务任务)\r\n位于system.web.http.controllers.actionfilterresult.d\uu 5.movenext()\r\n---来自引发异常的上一个位置的堆栈结束跟踪---\r\nsystem.runtime.exceptionservices.exceptiondispatchinfo.throw()\r\n位于system.runtime.compilerservices.taskawaiter.handlenonsuccessanddebuggernotification(任务任务)\r\n位于system.web.http.dispatcher.httpcontrollerdispatcher.d\u 15.movenext()“}
你知道怎么解决吗?

g9icjywg

g9icjywg1#

我想出来了。
问题是,当您在windows中使用docker卷时,您需要专门为docker提供对卷位置的访问权限。就我而言;docker-compose.yml文件和卷位于d:驱动器中。

您需要授予docker访问此文件夹的权限。
转到docker设置并导航到资源选项卡和该选项卡下的文件共享,然后单击+按钮。

在随后出现的“选择文件夹”对话框中;选择“导航到”文件夹并单击“选择文件夹”。

单击应用并重新启动

重启docker后;用docker compose再试一次,问题就解决了。耶!!!!!

相关问题