上文介绍了ELK的安装,中间有提到容器间用—link通信,其实这不是最优解。经过一番摸索,了解到了以下3种方式。
ip
最开始用ip加端口号,但是容器的IP是会随重启变化的,这样就不很方便。 用宿主机IP倒还行。
link
—link其实是在hosts加一条解析记录,这样不用担心IP变化而连接不到,但是需要依赖容器间启动顺序,一旦依赖多起来,Docker启动—link参数变得冗余,且不易维护。
network
最佳方式当属建立专属网络了,Docker内置了一个DNS Server,当你创建网络后就可以方便使用。
示例:
docker network create elk
$ docker run -d --name elasticsearch --net elk -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:tag