Не удалось войти в образ Docker postgres через localhost с опубликованным портом, но доступным по внешнему IP

Я пытаюсь выполнить простую настройку с изображением Docker Postgres, публикуя порт для подключения с локального хоста.

docker run -p 5432:5432 --name postgres -e POSTGRES_PASSWORD=password -e POSTGRES_USER=postgres -d postgres

Я могу просто подключиться, если указать внешний IP-адрес докера:

psql -h 192.1469.99.100 -p 5432 -U postgres -d postgres --password

Однако я получаю сбой проверки подлинности пароля при попытке против localhost:

psql -h localhost -p 5432 -U postgres -d postgres --password
psql: FATAL: password authentication failed for user "postgres"

Нужно ли вручную настраивать переадресацию портов вручную? Странно то, что кажется, что он прекрасно подключается к серверу postgres, просто странно говорит мне, что пароль не удался. Я сделал что-то не так с конфигурацией докера, возможно?

pg_hba.conf похоже:

local all all trust
host all all 127.0.0.1/32 trust
host all all ::1/128 trust

Хост-машина - Windows 7.

2 ответа

  1. Вы пробовали другой порт, чем 5432? Попробуйте какой-нибудь свободный порт, чтобы не было конфликта между вашим локальным postgre и вашим docker postgre. Мне кажется, что ваш локальный postgre имеет более высокий prio на localhost:5432, получает трафик и поэтому вы пытаетесь войти в свой локальный postgre вместо вашего docker postgre, но obv. просто предположение.

  2. Вы проверили, разрешен ли этот порт на виртуальной машине или что вы используете для виртуализации?

Контейнер имеет свою собственную сеть, и его адрес обратной связи не относится к хосту и наоборот.

Другие вопросы по тегам