Я пытаюсь запустить стек ELK с помощью Docker. Я нашел docker-elk, который уже настроил для меня конфигурацию, используя docker-compose
.Как монтировать контейнер-каталог для записи в контейнере?
Я хотел бы сохранить данные поиска elastics на главной машине вместо контейнера. В соответствии с README Докер-лося, я добавил раздел volumes
линия для elasticsearch
«s из docker-compose.yml
:
elasticsearch:
image: elasticsearch:latest
command: elasticsearch -Des.network.host=0.0.0.0
ports:
- "9200"
- "9300"
volumes:
- ../../env/elasticsearch:/usr/share/elasticsearch/data
Однако, когда я бегу docker-compose up
я получаю:
$ docker-compose up
Starting dev_elasticsearch_1
Starting dev_logstash_1
Starting dev_kibana_1
Attaching to dev_elasticsearch_1, dev_logstash_1, dev_kibana_1
kibana_1 | Stalling for Elasticsearch
elasticsearch_1 | [2016-03-09 00:23:35,193][WARN ][bootstrap ] unable to install syscall filter: seccomp unavailable: your kernel is buggy and you should upgrade
elasticsearch_1 | Exception in thread "main" java.lang.IllegalStateException: Unable to access 'path.data' (/usr/share/elasticsearch/data/elasticsearch)
elasticsearch_1 | Likely root cause: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/elasticsearch
elasticsearch_1 | at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
elasticsearch_1 | at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
elasticsearch_1 | at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
... etc ...
Глядя в ../../env
, каталог elasticsearch
был действительно создан, но он был пуст. Если я создаю ../../env/elasticsearch/elasticsearch
, тогда я получу ошибку доступа для /usr/share/elasticsearch/data/elasticsearch/nodes
. Если я создаю /nodes
, то я получаю сообщение об ошибке /nodes/0
и т. Д.
Короче говоря, похоже, что в контейнере нет разрешений на запись в каталоге.
Как получить разрешение на запись? Я попробовал chmod a+wx ../../env/elasticsearch
, а затем ему удалось создать следующий каталог, но в этом каталоге есть разрешение drwxr-xr-x
, и он снова застревает.
Мне не нравится идея запускать это как root.
Какой выход из 'Докер-Compose запустить --rm elasticsearch стат -c "% U% G"/ USR/доли/elasticsearch/данных '? – kojiro
@kojiro: Я получаю 'UNKNOWN staff' – Claudiu