我的盒子上正在运行以下Docker容器…
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
我的目标是让kibana链接到我的elasticsearch容器,但是当我点击kibana时,它告诉我我没有任何文档存储。我知道这是不对的,因为我肯定在Elasticsearch中有文件。我猜我的链接命令是错误的。
这是我用来启动kibana容器的docker命令。
docker run -p 5601:5601 --link sad_meitner:elasticsearch -d kibana
有人可以告诉我我做错了什么吗?
谢谢
首先,链接是旧功能,首先创建用户定义的网络:
docker network create mynetwork --driver=bridge
现在mynetwork用于您希望能够相互通信的容器。
mynetwork
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将为dns server您的用户定义的网络运行一个,因此您可以按名称ping其他容器。
dns server
docker exec -it kibana /bin/bash ping elasticsearch
您可以使用telnet或curl验证kibana容器中的kibana-> elasticsearch连接性。
telnet
curl
ps我official (library)最近将docker镜像用于带有用户定义网络的ELK堆栈,它的工作原理很吸引人。
official (library)