Я взял Dockerfile по ссылке, которую вы разместили.После построения контейнера с
docker build -t eg_postgresql .
я запустил контейнер с
docker run --rm -p 5432:5432 --name pg_test eg_postgresql
(который связывает локальный порт 5432 с контейнерным портом 5432)
и затем я попытался соединиться с
psql -h localhost -p 5432 -d docker -U docker --password
Это работает как шарм.Если вы получили сообщение о том, что пользователь Docker не существует, пожалуйста, дважды проверьте, что все шаги из Dockerfile успешно выполняются во время команды docker build
, поскольку создание пользователя Docker выполняется в команде RUN /etc/init.d/postgresql start &&\
psql --command "CREATE USER docker WITH SUPERUSER PASSWORD 'docker';" &&\
createdb -O docker docker
.Также убедитесь, что на вашем локальном хосте не запущен сервер PostgreSQL, чтобы вы могли быть уверены, что пытаетесь подключиться к PostgreSQL внутри контейнера.