2016-10-31 23 views
10

私はKibanaとElasticsearchを作成しようとしました.KibanaはElasticsearchの識別に問題があるようです。DockerのKibanaはElasticsearchに接続できません

docker run -i --network mynetwork -p 5601:5601 kibana:4.6 

私が手

docker run -d -p 9200:9200 -p 9300:9300 --name elasticsearch_2_4 --network mynetwork elasticsearch:2.4 

3)を実行しKibanaコンテナ

docker network create mynetwork --driver=bridge 

2)ファイル名を指定して実行Elasticsearchコンテナ

1)を作成したネットワーク:ここで

は私の手順ですJSONアウトプットブラウザから http://localhost:9200/経由でElasticsearchに接続すると

しかし、私はhttp://localhost:5601/を開いたとき、私は私がエラー

を取得

docker run -d -e ELASTICSEARCH_URL=http://127.0.0.1:9200 -p 5601:5601 kibana:4.6 

をしようとしたとき、私はまだ同様のエラーを取得し

Unable to connect to Elasticsearch at http://elasticsearch:9200. 

代替アプローチ、

を取得

Unable to connect to Elasticsearch at http://127.0.0.1:9200. 

受け入れ答えに基づいて、私のブログの記事:https://gunith.github.io/docker-kibana-elasticsearch/

+0

あなたが作曲ドッキングウィンドウを使用してアレントなぜいくつかの理由がありますか? – VladoDemcak

+0

コメント@VladoDemcakためのおかげで..私はアンドレアスの提案を使用し、それがまた動作します:)応答カルロスため –

答えて

16

何について誤解がありますかlocalhostまたは127.0.0.1は、コンテナ内でコマンドを実行するときに意味します。すべてのコンテナには独自のネットワークがあるため、localhostは実際のホストシステムではなく、コンテナ自体です。だからあなたがキバナを実行しているときに、に変数ELASTICSEARCH_URLを指しているとき、キバナプロセスは、キバナコンテナ内のelasticsearchを探すでしょう。

コンテナを起動するときに参照したカスタムネットワークが既に導入されています。同じネットワークで実行されているすべてのコンテナは、expose個のポート(Dockerfilesを参照)で名前を使って相互参照することができます。 elasticsearchコンテナの名前をelasticsearch_2_4と指定すると、elasticsearchのhttpエンドポイントをhttp://elasticsearch_2_4:9200として参照できます。

docker run -d --network mynetwork -e ELASTICSEARCH_URL=http://elasticsearch_2_4:9200 -p 5601:5601 kibana:4.6 

限り、あなたは直接elasticsearchインスタンスにアクセスする必要がないよう、あなたもあなたのホストへのポート9200と9300をマッピング省略することができます。

すべてのコンテナを単独で起動する代わりに、docker-composeを使用してすべてのサービスとパラメータを管理することをお勧めします。データを永続化するには、ローカルフォルダをボリュームとしてマウントすることも検討する必要があります。これはあなたの作成ファイルかもしれません。 networksを追加します。外部ネットワークが必要な場合は、この設定でネットワークを作成します。

version: "2" 

services: 

    elasticsearch: 
    image: elasticsearch:2.4 
    ports: 
     - "9200:9200" 
    volumes: 
     - ./esdata/:/usr/share/elasticsearch/data/ 

    kibana: 
    image: kibana:4.6 
    ports: 
     - "5601:5601" 
    environment: 
     - ELASTICSEARCH_URL=http://elasticsearch:9200 
+0

を追加するには、 'docker-compose.yml 'ファイルをドッカーが答えの一番下にスニペットを作成し、' docker-compose up'を実行してスタックを起立させます。 – scald

1

テスト:

docker run -d -e ELASTICSEARCH_URL=http://yourhostip:9200 -p 5601:5601 kibana:4.6 

あなたはあなたのホストのIPアドレスまたはifconfigコマンド

よろしく

にdocker0によって識別されたIPをテストすることができます
+0

感謝を示唆するように、受け入れ答えは@Andreasことによって動作します。.. だから、解決策がある: '' ' docker run -d --network mynetwork -e ELASTICSEARCH_URL = http:// elasticsearch_2_4:9200 -p 5601:5601 --name kibana_4_6 kibana:4.6 ' '' –

0

私はKibanaコンテナのためのネットワーク構成を変更し、この後にそれが正常に動作します:

Kitematic Kibana Settings[1]

関連する問題