Подготовка PostgreSQL
Предварительные условия
-
Используется сервер PostgreSQL версии 10.x и новее.
-
Для подключения к БД требуется роль доступа в БД с именем
rostellpgadmin
и правомSUPERUSER
. -
Должен быть доступ к серверу БД со всех серверов платформы.
Пример установки и настройки
Описан пример установки сервера PostgreSQL. Сервер БД установленный по данной инструкции не может использоваться в высоконагруженных системах.
1. Создать volume для контейнера
$ sudo docker volume create <volume_name> (1)
1 | <volume_name> – имя тома. |
2. Запустить контейнер PostgreSQL. Образ для запуска контейнера будет скачан с hub.docker.com
$ sudo docker run \
--name <container_name> \ (1)
-v <volume_name>:/var/lib/postgresql/data \ (2)
-e POSTGRES_PASSWORD=<pgrole_pwd> \ (3)
-dit \
--restart <restart_policy> \ (4)
--network=<network_type> \ (5)
postgres:<image_tag> (6) (7)
1 | <container_name> – имя контейнера. |
2 | <volume_name> – имя тома для контейнера. |
3 | <pgrole_pwd> – пароль роли доступа postgres, который будет установлен при инициализации. |
4 | <restart_policy> – политика перезапуска контейнера. |
5 | <network_type> – тип подключения контейнера к сети. |
6 | postgres – имя образа на основе которого будет запущен контейнер (константа). |
7 | <image_tag> – тэг образа. |
Например:
$ sudo docker run \
--name pgdb_name \
-v pg_data_vol:/var/lib/postgresql/data \
-e POSTGRES_PASSWORD=123 \
-dit \
--restart unless-stopped \
--network=host \
postgres:10
1. Подключиться к контейнеру
$ sudo docker exec -it <container_name> \ (1)
bash
1 | – имя созданного контейнера. |
2. Подключиться к БД postgres
# psql -U postgres
3. Создать роль доступа rostellpgadmin с паролем <role_pwd>
# CREATE ROLE rostellpgadmin LOGIN ENCRYPTED PASSWORD '<role_pwd>' SUPERUSER INHERIT CREATEDB CREATEROLE REPLICATION;
4. Отключиться от БД postgres
# \q
5. (Опционально)Изменить файл конфигурации аутентификации клиентов (pg_hba.conf).
По умолчанию файл располагается в: /var/lib/postgresql/data/pg_hba.conf
Для примера добавим возможность подключения к серверу PostgreSQL с адреса 192.168.0.35, для этого необходимо добавить строку:
host all all 192.168.0.35/32 md5
6. (Опционально)Изменить конфигурацию PostgreSQL (postgresql.conf).
По умолчанию файл располагается в: /var/lib/postgresql/data/postgresql.conf
Для примера изменим ip адреса и порт на которых будет поднят слушатель PostgreSQL:
listen_addresses = '*'
port = 5433
7. (Опционально)Перезагрузить службу PostgreSQL в случае если были изменения в рамках п.5 или п.6
$ sudo service postgresql restart
Выход из bash контейнера докера производится сочетанием клавиш 'Ctrl + d', либо командой 'exit'.