Nous sommes en 2018 et je viens d'avoir un problème similaire. La solution pour moi semblait être avec l'ordre des accessoires à docker. par exemple. cela a eu pour résultat qu'aucun port n'a été exposé ;
docker run -d --name posttest postgres:alpine -e POSTGRES_PASSWORD=fred -p 5432:5432
alors que cela a bien fonctionné (l'image a exposé le port 5432 comme prévu);
docker run --name posttest -d -p 5432:5432 -e POSTGRES_PASSWORD=fred postgres:alpine