Docker documentation for Logstash is here :
You can see there that logs are generated here :
stdout result, you have to get Logstash process standard output.
Your http input configuration is enough for what you do.
However, I invite you to clearly indicate header "Content-Type" in your curl request, it is important to indicate if your content is "text/plain" or "application/json". It is interpreted by logstash http input.
No you don't have to create an index first, because when you index a document in elasticsearch, if document index is missing, elasticsearch creates it automaticaly.
That said, I invite you to create index template first (to indicate mapping to elasticsearch), as indicated in my previous comment.