Не могу запустить metricbeat в докере

Я пытаюсь запустить metricbeat, используя докер на компьютере с Windows, и я изменил 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')

Почему я получаю это?

Как правильно внести постоянные изменения в содержимое файла в контейнере докеров (поскольку я не хочу менять файл конфигурации каждый раз при запуске контейнера)

Редактировать: Контейнер не предназначен для редактирования/изменения. При необходимости доступно управление томами докеров для экстернализации всех работ, связанных с конфигурацией. Спасибо.


person mnhmilu    schedule 17.09.2017    source источник
comment
Попробуйте запустить это 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, а затем вашу команду и посмотрите, поможет ли это. Если не поможет, то может быть из-за того, что изначально у файлов или на виндовс и виндовс нет таких разрешений. Таким образом, даже если вы внесете изменения, они не будут сохранены.   -  person Tarun Lalwani    schedule 17.09.2017
comment
команда не работает. К счастью, мне удалось запустить контейнер metricbeat, создав новый файл на виртуальной машине с помощью команды docker run -v /home/docker/metricbeat/metricbeat.yml:/usr/share/metricbea‌​t/metricbeat.yml -- имя metricbeat docker.elastic.co/beats/metricbeat:5.6.0 вместо доступа к местоположению Windows. Для этого должен быть лучший подход.   -  person mnhmilu    schedule 18.09.2017


Ответы (1)


Таким образом, есть 2 варианта, которые вы можете сделать здесь, я думаю.

Во-первых, вы можете убедиться, что файл имеет соответствующие разрешения:

chmod 644 metricbeat.yml

Или вы можете запустить свою команду docker с -strict.perms=false, которая помечает, что metricbeat не должен заботиться о том, какие разрешения есть в файле metricbeat.yml.

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

person skukx    schedule 02.04.2019
comment
Для Dockerfile с копией конфигурации добавьте следующую строку после копии: RUN chmod 644 /usr/share/metricbeat/metricbeat.yml - person Michael Chudinov; 25.05.2020