elasticsearch - 用于Elasticsearch的仅数据容器

标签 elasticsearch docker

我在使用elasticsearch仅获取数据的容器时遇到问题。
我可以在卷是主机卷但不能仅用于数据容器的情况下使用它。
这是我的仅数据容器:

# Dockerfile
FROM busybox
VOLUME /src/elasticsearch/data
VOLUME /src/elasticsearch/log
VOLUME /src/elasticsearch/plugins
VOLUME /src/elasticsearch/config

ADD ./elasticsearch.yml /src/elasticsearch/config/elasticsearch.yml
CMD /bin/sh

生成并运行它:
docker build -t nmcg/my_data .
docker run -i -t -name my_data nmcg/my_data

然后,我构建包含elasticsearch的grafana dockerfile
docker build -t nmcg/grafana:5.0 .
docker run -d -p 80:80 -p 8000:8000 -p 9200:9200 -p 8125:8125/udp -p 8126:8126 --volumes-from metrics_data1 nmcg/grafana:5.0

并在运行elasticsearch时指向elasticsearch.yml文件:
exec start-stop-daemon --start --user "elasticsearch" -c "elasticsearch" --exec /elasticsearch/bin/elasticsearch --"-Des.default.config=/src/elasticsearch/config/e.yml

但是elasticsearch无法启动:
2014-12-09 23:32:59,668 INFO success: elasticsearch entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2014-12-09 23:32:59,927 INFO exited: elasticsearch (exit status 3; not expected)

有任何想法吗?无法理解为什么不会像我用相同的路径托管卷时那样启动

最佳答案

Dockerfile中的ADD行不会产生任何影响(该文件不会被复制),因为它在VOLUME指令后出现。如果改为更改它以使其显示在VOLUME指令之前,它将被复制到该卷中。

您无需保持数据容器运行。如果您只是运行退出例如的命令docker run --name data-con data-container-image echo "Data Container"将创建卷并退出。这些卷仍然存在,可以在其他容器中使用--volumes-from data-con进行访问。只是不要rm data-con容器。

而且,通常,您不需要运行容器和数据容器的单独Dockerfile-您也可以将grafana镜像用作数据容器。

简而言之:

  • 将ADD行移到顶部
  • 删除CMD行
  • 使用docker run --name my_data nmcg/my_data echo "My Data Container启动数据容器
  • 检查您的数据容器
  • 是否确实需要单独的Dockerfile

    有关更多信息,您可以在这里查看我的博客文章:http://container-solutions.com/2014/12/understanding-volumes-docker/

    关于elasticsearch - 用于Elasticsearch的仅数据容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27391038/

    相关文章:

    elasticsearch - 这个geo_shape elasticsearch查询有什么问题?

    docker - 使用 Golang 从 Docker 连接到 Snowflake 数据库时出现错误 "x509: certificate signed by unknown authority"

    node.js - 使用 babel-preset-env 进行转译,而不从 create-react-app 中弹出

    elasticsearch - Elastic/Kibana:在查询搜索中支持复数

    java - 找不到类型为 : class org. json.JSONObject 的返回值的转换器

    elasticsearch - elasticsearch不分析领域

    java - 针对 docker 中的服务进行集成测试

    docker - Vagrant或Docker用于环境开发

    python - 在 python Docker 容器中安装 pip 包

    elasticsearch - 如何使 Elasticsearch 更灵活?