乐趣区

关于docker:docker使用系列之5docker安装kibana

关上容器镜像官网

2.6.1 镜像官网搜寻 kibana

2.6.2 间接拉取镜像:

sudo docker pull kibana:7.4.2

2.6.3 装置 kibana 容器

2.6.3.1 创立实例并启动:

kibana:

docker run –name kibana –link elasticsearch:elasticsearch -p 5601:5601 -d kibana:7.4.2

参数阐明:

-p 5601:5601 将容器的 9200 端口映射到主机的 9200 端口;
–name kibana 给以后启动的容器取名叫 elasticsearch
-d 当前台形式运行(daemon)
–link 这个参数值得细说一下, 次要是实现容器互联, 实现容器间的通信

2.6.3.2 容器互联实现容器间通信(–link)

对于 docker 环境下装置 elasticsearch+kibana 连不上问题

容器的 link 是除了端口映射之外另一种能够与容器中利用进行交互的形式. 它是在源和接管容器之间造成一个隧道, 接管容器能够看到源容器指定的信息;

  1. 自定义容器名(–name)

    也就是咱们 docker run 时指定的 --name 参数值, 连贯的时候能够作为连贯根据, 比方下面的:

    docker run –name kibana –link elasticsearch:elasticsearch -p 5601:5601 -d kibana:7.4.2

    就是说在 kibana 的容器运行时, 指定 一个连贯的容器: name 是 elasticsearch

  2. –link 语法

    –link name:alias

    –link elasticsearch:elasticsearch

    咱们能够看看 kibana 的环境变量和 hosts 文件, 这两个文件里会体现出这种 link 关系:

  3. kibana 容器的环境变量信息:

    能够看到: ELASTICSEARCH 结尾的环境变量, 是提供 kibana 连贯 elasticsearch 容器应用, 前缀采纳大写的连贯别名;

    [root@localhost ~]# docker exec -it kibana /bin/bash
    bash-4.2$ env
    HOSTNAME=9c3655df879c
    ELASTICSEARCH_PORT_9200_TCP_PORT=9200
    TERM=xterm
    ELASTIC_CONTAINER=true
    ELASTICSEARCH_ENV_ELASTIC_CONTAINER=true
    ELASTICSEARCH_NAME=/kibana/elasticsearch
    ELASTICSEARCH_PORT_9200_TCP_PROTO=tcp
    ELASTICSEARCH_PORT_9300_TCP_PORT=9300
    ELASTICSEARCH_PORT_9300_TCP_ADDR=172.17.0.4
    PATH=/usr/share/kibana/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    PWD=/usr/share/kibana
    SHLVL=1
    HOME=/usr/share/kibana
    ELASTICSEARCH_PORT=tcp://172.17.0.4:9200
    ELASTICSEARCH_ENV_discovery.type=single-node
    ELASTICSEARCH_PORT_9200_TCP=tcp://172.17.0.4:9200
    ELASTICSEARCH_PORT_9300_TCP=tcp://172.17.0.4:9300
    ELASTICSEARCH_ENV_ES_JAVA_OPS=-Xms128m -Xmx512m
    ELASTICSEARCH_PORT_9300_TCP_PROTO=tcp
    ELASTICSEARCH_PORT_9200_TCP_ADDR=172.17.0.4
    _=/usr/bin/env    
  4. kibana 的 hosts 文件:

    bash-4.2$ cat /etc/hosts
    127.0.0.1    localhost
    ::1    localhost ip6-localhost ip6-loopback
    fe00::0    ip6-localnet
    ff00::0    ip6-mcastprefix
    ff02::1    ip6-allnodes
    ff02::2    ip6-allrouters
    172.17.0.4    elasticsearch 6aa29c59ba9a
    172.17.0.5    9c3655df879c
    

    留神看这里的

    172.17.0.5 9c3655df879c 9c3655df879c 是 kibana 的 容器 id

    172.17.0.4 elasticsearch 6aa29c59ba9a 6aa29c59ba9a 是 elasticsearch 的 容器 id

    [root@localhost ~]# docker ps
    CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                                            NAMES
    9c3655df879c        kibana:7.4.2          "/usr/local/bin/dumb…"   40 minutes ago      Up 40 minutes       0.0.0.0:5601->5601/tcp                           kibana
    6aa29c59ba9a        elasticsearch:7.4.2   "/usr/local/bin/dock…"   3 hours ago         Up 3 hours          0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp   elasticsearch
    

2.6.3.3 启动 kibana 容器

docker start kibana
# 设置 docker 启动主动运行 kibana
docker update kibana --restart=always

2.6.4 拜访 kibana

http://192.168.56.100:5601/

2.6.5 问题小结

原来用的是docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.56.103:9200 -p 5601:5601 -d kibana:7.4.2 , kibana 和 es 连不上, 看 docker logs kibana 日志提醒: kibana 中设置 es 的 ip 不对的问题, 导致始终报:

kibana Unable to revive connection: http://elasticsearch:9200

应用了 --link elasticsearch:elasticsearch 参数之后, kibana 能够拜访 es 了:

docker run –name kibana –link elasticsearch:elasticsearch -p 5601:5601 -d kibana:7.4.2

退出移动版