独自のエラスティック検索インスタンスを設定する代わりに、 公式のelasticsearch Dockerイメージ を使用しています。そして、それを拡張したかった時点まで、それはうまく機能します。詳細情報を取得するために、ElasticSearchインスタンスに marvel をインストールしたかった。
現在、dockerfile/elasticsearchはElasticSearchを自動的に実行し、コマンドを/bin/bash
に設定しても機能しません。コンテナにアタッチしたり、SSH経由でコンテナにアクセスしようとしたり、apt-get install -y openssh-server
でssh-daemonをインストールしたりすることもできません。
この特定のケースでは、コンテナのファイルシステムに移動してopt/elasticsearch/bint/plugin -i elasticsearch/marvel/latest
を実行するだけで、すべてが機能しました。
しかし、実行中のコンテナ内に端末を置くことができないときに、apt-get
でインストールする必要がある追加のサービスをどのようにインストールできますか?
で始まるDockerfileを使用して単純に拡張します
FROM dockerfile/elasticsearch
そして、marvelまたはssh-serverまたは必要なものをインストールします。次に、正しいコマンドで終了してサービスを開始します。スーパーバイザーを使用して複数のサービスを開始できます。詳細については、 Dockerコンテナーでサービスを自動的に実行する を参照してください。
docker-composeの使用を気にしない場合は、通常、再利用するベースイメージの最初のセクションを追加し、そのイメージを残りのベースのベースとして使用しますサービス 'Dockerfiles、次の行に沿った何か:
---
version: '2'
services:
base:
build: ./images/base
collector:
build: ./images/collector
次に、images/collector/Dockerfileで、プロジェクトがwebtrackと呼ばれるので、次のように入力します
FROM webtrack_base
...
これで完了です!
2016年8月更新
ElasticSearchの最新バージョン(2.3.5など)、Kibana(4.5.3)、Marvel&Senseプラグインでこれを行う方法に関する最新情報がほとんどないため、急勾配のパスを使用して独自のイメージを作成することにしました。
ソースコード(Dockerfile)とREADME here を見つけてください。
FROM Java:jre-Alpine
MAINTAINER arcseldon <[email protected]>
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:92 でElasticsearchに接続し、 http:// localhost:5601 でそのKibanaフロントエンドに接続できます。
http:// localhost:5601/app/marvel でMarvelに接続し、 http:// localhost:5601/app/sense でSenseに接続できます
これが他の人を助け、時間を節約することを願っています!