Det är 2018 och jag hade precis ett liknande problem. Lösningen för mig verkade vara med rekvisitaordningen till hamnarbetare. t.ex. detta resulterade i att ingen port exponerades;
docker run -d --name posttest postgres:alpine -e POSTGRES_PASSWORD=fred -p 5432:5432
medan detta fungerade bra (bildexponerad port 5432 som förväntat);
docker run --name posttest -d -p 5432:5432 -e POSTGRES_PASSWORD=fred postgres:alpine