关上容器镜像官网
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是除了端口映射之外另一种能够与容器中利用进行交互的形式. 它是在源和接管容器之间造成一个隧道, 接管容器能够看到源容器指定的信息;
自定义容器名(--name)
也就是咱们docker run时指定的
--name
参数值, 连贯的时候能够作为连贯根据, 比方下面的:docker run --name kibana --link elasticsearch:elasticsearch -p 5601:5601 -d kibana:7.4.2
就是说在 kibana 的容器运行时, 指定 一个连贯的容器: name是 elasticsearch
--link语法
--link name:alias
--link elasticsearch:elasticsearch
咱们能够看看 kibana的环境变量和hosts文件, 这两个文件里会体现出这种link关系:
kibana 容器的环境变量信息:
能够看到: ELASTICSEARCH结尾的环境变量,是提供 kibana 连贯 elasticsearch容器应用, 前缀采纳大写的连贯别名;
[root@localhost ~]# docker exec -it kibana /bin/bashbash-4.2$ envHOSTNAME=9c3655df879cELASTICSEARCH_PORT_9200_TCP_PORT=9200TERM=xtermELASTIC_CONTAINER=trueELASTICSEARCH_ENV_ELASTIC_CONTAINER=trueELASTICSEARCH_NAME=/kibana/elasticsearchELASTICSEARCH_PORT_9200_TCP_PROTO=tcpELASTICSEARCH_PORT_9300_TCP_PORT=9300ELASTICSEARCH_PORT_9300_TCP_ADDR=172.17.0.4PATH=/usr/share/kibana/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binPWD=/usr/share/kibanaSHLVL=1HOME=/usr/share/kibanaELASTICSEARCH_PORT=tcp://172.17.0.4:9200ELASTICSEARCH_ENV_discovery.type=single-nodeELASTICSEARCH_PORT_9200_TCP=tcp://172.17.0.4:9200ELASTICSEARCH_PORT_9300_TCP=tcp://172.17.0.4:9300ELASTICSEARCH_ENV_ES_JAVA_OPS=-Xms128m -Xmx512mELASTICSEARCH_PORT_9300_TCP_PROTO=tcpELASTICSEARCH_PORT_9200_TCP_ADDR=172.17.0.4_=/usr/bin/env
kibana的hosts文件:
bash-4.2$ cat /etc/hosts127.0.0.1 localhost::1 localhost ip6-localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allrouters172.17.0.4 elasticsearch 6aa29c59ba9a172.17.0.5 9c3655df879c
留神看这里的
172.17.0.5 9c3655df879c
9c3655df879c是 kibana 的 容器id172.17.0.4 elasticsearch 6aa29c59ba9a
6aa29c59ba9a 是 elasticsearch 的 容器id[root@localhost ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES9c3655df879c kibana:7.4.2 "/usr/local/bin/dumb…" 40 minutes ago Up 40 minutes 0.0.0.0:5601->5601/tcp kibana6aa29c59ba9a 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启动主动运行kibanadocker 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