Docker Community Forums

Share and learn in the Docker community.

Solved: Startup of containers fails on local port-binding


(Afischer211) #1

Expected behavior

Startup of pulled images is successful.

Actual behavior

On starting of images with docker-compose I get the following error message (here for a elasticsearch-image, but the same also for other images and port-bindings):
ERROR: for elasticsearch driver failed programming external connectivity on endpoint elasticsearch (b480db6afa7f97b47098b61540c421203a8e07a9788ffa08ef640c85855e0b75): Error starting userland proxy: Bind for 0.0.0.0:9200 failed: port is already allocated
The pull itself is successful, but not the startup of the image.

Information

I have uploaded a diagnostic file with ID 275D96C8-44B9-425D-AA60-590CF4D67E45/2016-07-20_15-36-18

Steps to reproduce the behavior

  1. pull image
  2. startup the image with fixed port-binding

(Afischer211) #2

In earlier versions I could disable the feature for binding to local ports, but now it is always active.


(Michael Friis) #3

Can you use a different port or not bind ES to a port (if it’s just used by other containers in your app)?


(Afischer211) #4

Ok, if I change portmapping to 9201:9200, elasticsearch comes up. With return to 9200:9200 the error occurs again.
The same problem occurs with port 5601 on kibana.

After some deeper analysis it seems to be a problem of a running windows-service (iphlpsvc for mapping ip6 to ip4) (subtask under svchost), which locks an amount of different ports. I have killed this service and all is running again.
The helpful windows-command was “netstat -aon | more” followed by check for services with the problematic pid in taskmanager.
Can I change the startup-type of this service from automatic to manual? Or can I define some exceptions or shutdown the service on startup of docker?