Jest rok 2018 i właśnie miałem podobny problem. Wydawało mi się, że rozwiązaniem jest kolejność rekwizytów do doków. np. spowodowało to, że żaden port nie został ujawniony;
docker run -d --name posttest postgres:alpine -e POSTGRES_PASSWORD=fred -p 5432:5432
podczas gdy to działało dobrze (obraz odsłonił port 5432 zgodnie z oczekiwaniami);
docker run --name posttest -d -p 5432:5432 -e POSTGRES_PASSWORD=fred postgres:alpine