I solved the problem - added ports: ['5044:5044'] in docker-compose.yml under logstash.
This was required to bind the port.
new docker-compose.yml
version: '2'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:6.3.2
container_name: elasticsearch
ports: ['9200:9200']
networks: ['elkstack']
volumes:
- 'es_data:/usr/share/elasticsearch/data'
kibana:
image: docker.elastic.co/kibana/kibana:6.3.2
container_name: kibana
ports: ['5601:5601']
networks: ['elkstack']
depends_on: ['elasticsearch']
logstash:
image: docker.elastic.co/logstash/logstash:6.3.2
volumes:
- '/path/to/config/:/usr/share/logstash/pipeline/'
container_name: logstash
ports: ['5044:5044']
networks: ['elkstack']
depends_on: ['elasticsearch']
volumes:
es_data:
driver: local
networks:
elkstack:
driver: bridge