Sign inSign up

isimplelab/postgres

By isimplelab

Updated over 7 years ago

СУБД PostgreSQL для разработки и тестирования с возможностью восстановления из дампа при запуске

Image
0

10K+

isimplelab/postgres repository overview

Поддерживаемые теги

  • 1.3, 1.3-postgres10 на основе Postgres 10
  • 1.3-postgres9.6 на основе Postgres 9.6

Что такое PostgreSQL

PostgreSQL - это свободная объектно-реляционная система управления базами данных. Данный образ создан на основе https://hub.docker.com/_/postgres/ и поддерживает переменные окружения оттуда.

Как использовать

Предполагается что контейнер будет запущен одним из двух способов:

  1. Запуск контейнера с последующим созданием базы данных вручную.
  2. Запуск контейнера с автоматическим восстановлением на него указанного дампа.

Запуск контейнера

Описанным ниже способом запускается сервер базы данных, к которому можно подключиться по порту 5432, либо на localhost, если Docker работает из-под Linux или Hyper-V, либо по адресу docker-machine. По умолчанию логин администратора postgres, пароль postgres.

Создание postgres 9.6

docker run -d --name isimple-postgres96 -v postgres-data:/var/lib/postgresql/data -p 5432:5432 isimplelab/postgres:1.3-postgres9.6

Создание postgres 10.0

docker run -d --name isimple-postgres10 -v postgres-data:/var/lib/postgresql/data -p 5432:5432 isimplelab/postgres:1.3-postgres10
  • -d запуск контейнера в фоном режиме (необязательно).
  • --name задаёт наименование контейнеру (необязательно).
  • -v создаёт именованный том postgres-data для хранения данных и размещает в нём содержимое контейнера, расположенное по пути /var/lib/postgresql/data. При перезапуске контейнера его данные сохранятся в именованном томе.
  • -p отображение порта хоста на порт контейнера (необязательно). Если не указать, будет использован стандартный порт 5432.
  • isimplelab/postgres96 название запускаемого контейнера.

Запуск контейнера с восстановлением БД

Данные могут быть прогружены в контейнер при его запуске из файла-дампа, находящегося на внешнем источнике и загружаемого контейнером по FTP, HTTP-протоколу, или на файловой системе, в каталоге, отображаемом внутрь Docker-контейнера.

В команде запуска контейнера с дампом нужно указать расположение файла. Это можно сделать через специальную переменную окружения DUMP_PATH.

Значение переменной может быть задано в команде запуска контейнера после флага -e, или в файле свойств, путь к которому передаётся команде запуска контейнера после флага --env-file.

Значения переменной DUMP_PATH

Дамп может находиться на локальном диске или на внешнем ресурсе.

  • В локальной директории DUMP_PATH=dump_name.backup
  • На FTP-ресурсе DUMP_PATH=ftp://<login>:<password>@<host>/path/dump_name.backup
  • На HTTP-ресурсе DUMP_PATH=http://<host>/path/dump_name.backup
Запуск контейнера и восстановление

Запуск контейнера с дампом на внешнем ресурсе и локальном диске немного отличаются.

На внешнем ресурсе
docker run -d --name isimple-postgres96 -v postgres-data:/var/lib/postgresql/data -p 5432:5432 --env-file way/to/property_file.properties isimplelab/postgres:1.3-postgres9.6
На локальном диске
docker run -d --name isimple-postgres96 -v postgres-data:/var/lib/postgresql/data -v way/to/folder/with/dump:/dump -p 5432:5432  --env-file way/to/property_file.properties isimplelab/postgres:1.3-postgres9.6

-v way/to/folder/with/dump:/dump - отображение локальной директории, содержащей файл дампа на директорию внутри контейнера, которую он использует как источник файлов для восстановления.

Контейнер запускается и восстанавливает дамп в фоне, отследить процесс и получить информацию о возможных ошибках можно по логам

docker logs -f isimple-postgres96.

После того, как дамп будет восстановлен, можно подключиться к базе используя:

  • IP адрес хоста, на котором запущен контейнер
  • имя БД - isimpledb
  • логин - postgres
  • пароль - postgres
  • порт - 5432

Tag summary

Content type

Image

Digest

Size

26.9 MB

Last updated

over 7 years ago

docker pull isimplelab/postgres