С точки зрения контейнера, localhost
сам по себе не является хост-машиной, на которой он работает, поэтому он не может подключиться кasticsearch.
Вам необходимо запустить контейнер filebeatв сети хоста или создайте для нее пользовательскую сеть и подключите к этой сети и filebeat, иasticsearch.
Пример:
$ sudo docker network create mynetwork --driver bridge
$ sudo docker run -d -p 9200:9200 -p 9300:9300 --net=mynetwork --name elasticsearch -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.0.0
$ sudo docker run -d --name kibana --net=mynetwork -p 5601:5601 kibana:7.0.0
$ sudo docker run --net=mynetwork --name filebeat docker.elastic.co/beats/filebeat:7.0.0 setup -E setup.kibana.host=kibana:5601 -E output.elasticsearch.hosts=["elasticsearch:9200"]