【发布时间】:2018-02-26 00:41:33
【问题描述】:
我正在尝试在 Windows 机器中使用 docker 运行 metricbeat,我已根据我的要求更改了 metricbeat.yml。
docker run -v /c/Users/someuser/docker/metricbeat.yml:/usr/share/metricbeat/metricbeat.yml docker.elastic.co/beats/metricbeat:5.6.0
但得到这些错误
metricbeat2017/09/17 10:13:19.285547 beat.go:346:CRIT 退出:错误 加载配置文件:配置文件(“metricbeat.yml”)只能是 所有者可写,但权限为“-rwxrwxrwx”(修复 权限使用:'chmod go-w /usr/share/metricbeat/metricbeat.yml') 退出:加载配置文件时出错:配置文件(“metricbeat.yml”)只能由所有者写入,但权限为“-rwxrwxrwx” (修复权限使用:'chmod go-w / usr/share/metricbeat/metricbeat.yml')
为什么我会得到这个?
在 docker 容器中永久更改文件内容的正确方法是什么(因为我不想每次容器启动时都更改配置文件)
编辑: 容器不是用来编辑/更改的。如有必要,可以使用 docker 卷管理来外部化所有与配置相关的工作。谢谢
【问题讨论】:
-
尝试运行这个
docker run -v /c/Users/someuser/docker/metricbeat.yml:/usr/share/metricbeat/metricbeat.yml docker.elastic.co/beats/metricbeat:5.6.0 chmod go-w / usr/share/metricbeat/metricbeat.yml然后你的命令,看看它是否有帮助。如果它没有帮助,那么可能是因为最初的文件或 windows 和 windows 上的文件没有这样的权限。因此,即使您进行了更改,它也不会被持久化 -
命令不起作用。幸运的是,我已经设法通过在虚拟机中创建一个新文件来启动 metricbeat 容器,命令是 docker run -v /home/docker/metricbeat/metricbeat.yml:/usr/share/metricbeat/metricbeat.yml --命名 metricbeat docker.elastic.co/beats/metricbeat:5.6.0 而不是访问 Windows 位置。必须有更好的方法来做到这一点。
标签: docker elasticsearch elastic-stack metricbeat