在主机上运行ELK堆栈docker

时间:2019-02-28 14:35:49

标签: docker elasticsearch networking containers kibana

我想在我的主机上的docker上安装elasticsearch和kibana:

    $sudo docker run -dit --name elasticsearch -h elasticsearch --net host -p 9200:9200 -p 9300:9300 -v $(pwd)/elasticsearch/data/:/usr/share/elasticsearch/data/ -e "discovery.type=single-node" elasticsearch:6.6.1
WARNING: Published ports are discarded when using host network mode


    $sudo docker run -dit --name kibana -h kibana --net host -p 5601:5601 kibana:6.6.1
WARNING: Published ports are discarded when using host network mode

我在kibana上遇到以下错误:

 log   [14:32:26.655] [warning][admin][elasticsearch] Unable to revive connection: http://elasticsearch:9200/
 log   [14:32:26.656] [warning][admin][elasticsearch] No living connections

但是,如果我不使用主机:

sudo docker network create mynetwork
sudo docker run -dit --name elasticsearch -h elasticsearch --net mynetwork -p 9200:9200 -p 9300:9300 -v $(pwd)/elasticsearch/data/:/usr/share/elasticsearch/data/ -e "discovery.type=single-node" elasticsearch:6.6.1
sudo docker run -dit --name kibana -h kibana --net mynetwork -p 5601:5601 kibana:6.6.1

一切正常。有什么问题吗?

1 个答案:

答案 0 :(得分:0)

--net host禁用大多数Docker网络堆栈。使用其容器名称作为主机名在容器之间进行通信等基本功能不起作用。除非在非常特殊的情况下,否则没有必要。

您的第二个设置是使用标准Docker网络并通过主机发布选定端口的最佳做法。