我使用the official elasticsearch Docker image而不是设置我自己的弹性搜索实例。这很有效,直到我想扩展它。我想在{ElasticSearch'实例中安装marvel以获取更多信息。
现在,dockerfile / elasticsearch会自动运行ElasticSearch并将命令设置为/bin/bash
不起作用,既不会附加到容器上,也不会尝试通过SSH访问它,也不会安装带{{1的ssh-daemon }}。
在这种特殊情况下,我可以进入容器的文件系统并执行apt-get install -y openssh-server
,一切正常。
但是,当我无法在正在运行的容器中设置终端时,如何安装需要与opt/elasticsearch/bint/plugin -i elasticsearch/marvel/latest
一起安装的其他服务?
答案 0 :(得分:33)
只需使用以
开头的Dockerfile扩展它FROM dockerfile/elasticsearch
并安装marvel或ssh-server或任何你需要的东西。然后,以正确的命令结束以启动您的服务。您可以使用主管启动多项服务,有关详细信息,请参阅Run a service automatically in a docker container。
答案 1 :(得分:2)
如果您不介意使用 docker-compose ,我通常会为您计划重复使用的基本图像添加第一部分,然后使用该图像作为基础在其余的服务' Dockerfiles ,类似于:
---
version: '2'
services:
base:
build: ./images/base
collector:
build: ./images/collector
然后,在images / collector / Dockerfile中,由于我的项目名为 webtrack ,我输入
FROM webtrack_base
...
现在已经完成了!
答案 2 :(得分:1)
2016年8月更新
关于如何使用最新版本的ElasticSearch(例如2.3.5),Kibana(4.5.3)和Marvel& amp;感觉插件,我选择采用更陡峭的路径并编写自己的图像。
请找到源代码(Dockerfile)和README here
FROM java:jre-alpine
MAINTAINER arcseldon <arcseldon@gmail.com>
ENV ES_VERSION=2.3.5 \
KIBANA_VERSION=4.5.3
RUN apk add --quiet --no-progress --no-cache nodejs \
&& adduser -D elasticsearch
USER elasticsearch
WORKDIR /home/elasticsearch
RUN wget -q -O - http://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/${ES_VERSION}/elasticsearch-${ES_VERSION}.tar.gz \
| tar -zx \
&& mv elasticsearch-${ES_VERSION} elasticsearch \
&& wget -q -O - http://download.elastic.co/kibana/kibana/kibana-${KIBANA_VERSION}-linux-x64.tar.gz \
| tar -zx \
&& mv kibana-${KIBANA_VERSION}-linux-x64 kibana \
&& rm -f kibana/node/bin/node kibana/node/bin/npm \
&& ln -s $(which node) kibana/node/bin/node \
&& ln -s $(which npm) kibana/node/bin/npm \
&& ./elasticsearch/bin/plugin install license \
&& ./elasticsearch/bin/plugin install marvel-agent \
&& ./kibana/bin/kibana plugin --install elasticsearch/marvel/latest \
&& ./kibana/bin/kibana plugin --install elastic/sense
CMD elasticsearch/bin/elasticsearch --es.logger.level=OFF --network.host=0.0.0.0 & kibana/bin/kibana -Q
EXPOSE 9200 5601
如果您只想要预先制作的图片,请执行以下操作:
docker pull arcseldon/elasticsearch-kibana-marvel-sense
您可以访问hub.docker.com here
上的存储库用法:
docker run -d -p 9200:9200 -p 5601:5601 arcseldon/elasticsearch-kibana-marvel-sense
您可以使用http://localhost:9200及其Kibana前端与http://localhost:5601连接到Elasticsearch。
您可以使用http://localhost:5601/app/marvel和Sense http://localhost:5601/app/sense
连接到Marvel希望这有助于他人并节省一些时间!