Reaching elasticsearch externally

I am trying to reach ES via a GO Client - the official GO Client from ES is able to connect. however, I am trying to see is this client is reaching the ES instance

It is not working because the transport publish address of the instance is always 172.20.0.2:9200

I tried to change this with the following command -
docker run -d -p 5601:5601 -p 9200:9200 -p 5044:5044 --name elk sebp/elk elasticsearch -Enetwork.publish_host=local -Enetwork.host=local,site

the docker container starts.. how ever the http "publish_address": "172.20.0.2:9200"

I also tried with a docker-compose like,

- cluster.name=eslocal
- bootstrap.memory_lock=true
- http.host=127.0.0.1
- transport.host=127.0.0.1
- network.publish_host=127.0.0.1
- transport.publish_port=9200

Neither is this working.. Is there any other possibility to expose the instance out side the docker container so that an external application can access the stored data ?

thanks
CC

have you tried setting 0.0.0.0 as http.host setting to bind to any interface?