linking kibana with elasticsearch

2019-04-15 00:08发布

I have the following docker containers running on my box...

CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                              NAMES
5da7523e527b        kibana              "/docker-entrypoint.s"   About a minute ago   Up About a minute   0.0.0.0:5601->5601/tcp             elated_lovelace
20aea0e545ca        elasticsearch       "/docker-entrypoint.s"   3 hours ago          Up 3 hours          0.0.0.0:9200->9200/tcp, 9300/tcp   sad_meitner

My aim was to get kibana to link to my elasticsearch container however when I hit kibana it's telling me that I do not have any document stores. I know this is not right because I definitely have documents in elasticsearch. I'm guessing my link command is wrong.

This is the docker command I used to start the kibana container.

docker run -p 5601:5601 --link sad_meitner:elasticsearch -d kibana 

Can someone tell me what I've done wrong?

thanks

2条回答
叼着烟拽天下
2楼-- · 2019-04-15 00:54

First of all, Linking is a legacy feature, Create a user defined network first:

docker network create mynetwork --driver=bridge

Now use mynetwork for containers you want to be able to communicate with each other.

docker run -p 5601:5601 --name kibana -d --network mynetwork kibana 
docker run -p 9200:9200 -p 9300:9300 --name elasticsearch -d --network mynetwork elasticsearch

Docker will run a dns server for your user defined network, so you can ping other container by name.

docker exec -it kibana /bin/bash
ping elasticsearch

You can use telnet or curl to verify kibana->elasticsearch connectivity from kibana container.

p.s I used official (library) docker images for ELK stack with user defined networking recently and it worked like a charm.

查看更多
甜甜的少女心
3楼-- · 2019-04-15 01:06

you can add ENV ELASTICSEARCH_URL=elasticsearch:9200 to your Dockerfile before build kibana, then use docker-compose to run elasticsearch with kibana like this:

version: '2'
services:
  elasticsearch:
   image: docker.elastic.co/elasticsearch/elasticsearch:5.3.0
   container_name: elasticsearch
   ports:
    - "9200:9200"
    - "9300:9300"
  environment:
    ES_JAVA_OPTS: "-Xmx256m -Xms256m"
 kibana:
  image: docker.elastic.co/kibana/kibana:5.3.0
  container_name: kibana
  ports:
    - "5601:5601"
  depends_on:
   - elasticsearch
查看更多
登录 后发表回答