3

我正在尝试在 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 卷管理来外部化所有与配置相关的工作。谢谢

4

1 回答 1

4

所以我认为你可以在这里做两个选择。

首先是您可以确保文件具有适当的权限:

chmod 644 metricbeat.yml

或者,您可以使用-strict.perms=falsemetricbeat 不关心metricbeat.yml文件权限的标志来运行 docker 命令。

docker run \
  docker.elastic.co/beats/metricbeat:5.6.0 \
  --volume="/c/Users/someuser/docker/metricbeat.yml:/usr/share/metricbeat/metricbeat.yml" \
  -strict.perms=false

您可以在以下链接中查看有关该标志的更多文档: https ://www.elastic.co/guide/en/beats/metricbeat/current/command-line-options.html#global-flags

于 2019-04-02T17:19:26.910 回答