我有一个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()“}
你知道怎么解决吗?
1条答案
按热度按时间g9icjywg1#
我想出来了。
问题是,当您在windows中使用docker卷时,您需要专门为docker提供对卷位置的访问权限。就我而言;docker-compose.yml文件和卷位于d:驱动器中。
您需要授予docker访问此文件夹的权限。
转到docker设置并导航到资源选项卡和该选项卡下的文件共享,然后单击+按钮。
在随后出现的“选择文件夹”对话框中;选择“导航到”文件夹并单击“选择文件夹”。
单击应用并重新启动
重启docker后;用docker compose再试一次,问题就解决了。耶!!!!!