Docker → Подключение к локальному PostgreSQL из Docker-контейнера

Это будет запись близнец к предыдущему посту :)

Для начала определяем IP, к которому будем подключаться из контейнера:

1
ip addr show

Смотрим, находим, запоминаем. Далее настроим PostgreSQL. Для начала в /etc/postgresql/9.3/main/postgresql.conf (путь в конфигам может быть и другой, в зависимости от версии БД и дистрибутива вашего линукса, или что вы там используете) находим и редактируем директиву listen_addresses, чтобы сервер БД прослушивал все адреса, а не только localhost:

1
2
# /etc/postgresql/9.3/main/postgresql.conf
listen_addresses = '*'

Далее разрешим пользователю из докера подключаться в БД. Для этого необходимо добавить строку в /etc/postgresql/9.3/main/pg_hba.conf:

1
2
# /etc/postgresql/9.3/main/pg_hba.conf
host    all all 0.0.0.0/0   password

И напоследок создадим базу данных и пользователя:

1
2
3
4
5
6
CREATE DATABASE pupkin_db;
CREATE USER pupkin WITH password 'qwerty';
GRANT ALL privileges ON DATABASE pupkin_db TO pupkin;

-- добавим возможность создавать базы данных
ALTER ROLE pupkin CREATEDB;

Готово.

Комментарии

avatar
Алексей
avatar
Спасибо огромное, очень помогло!
ответить
avatar
morontt
avatar
Не за что :)
ответить
2 комментария Написать что-нибудь
Или войдите, чтобы не заполнять форму:
Адрес электронной почты нигде не отображается, необходим только для обратной связи.
Напрограммировано на Go 1.23.2, версия движка 589441d