oracle logo

isimplelab/oracle

By isimplelab

Updated over 7 years ago

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

Image
0

6.5K

Что такое Oracle

Oracle - объектно-реляционная система управления базами данных компании Oracle. Данный образ создан на основе https://hub.docker.com/r/sath89/oracle-xe-11g/ и поддерживает переменные окружения оттуда.

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

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

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

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

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

docker run -d --name isimple-oracle -v oracle-data:/u01/app/oracle 
  -p 1521:1521  -p 8080:8080  isimplelab/oracle
  • -d запуск контейнера в фоном режиме (необязательно).
  • --name задаёт наименование контейнеру (необязательно).
  • -v создаёт именованный том oracle-data для хранения данных и размещает в нём содержимое контейнера, расположенное по пути /u01/app/oracle При перезапуске контейнера его данные сохранятся в именованном томе.
  • -p отображение порта контейнера на порт хоста (необязательно). Если не указать, будет использован стандартный порт 1521.
  • isimplelab/oracle название запускаемого контейнера.

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

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

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

Значение переменных может быть задано в команде запуска контейнера после флага -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
Значения переменной DUMP_CHARSET

Кодировка дампа.

Запуск на внешнем ресурсе и на локальном диске

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

На внешнем ресурсе

docker run -d --name isimple-oracle -v oracle-data:/u01/app/oracle 
-p 1521:1521 -p 8080:8080 --env-file way/to/property_file.properties isimplelab/oracle

На локальном диске

docker run -d --name isimple-oracle -v oracle-data:/u01/app/oracle 
-v way/to/folder/with/dump:/dump -p 1521:1521 -p 8080:8080 
--env-file way/to/property_file.properties isimplelab/oracle

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

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

docker logs -f isimple-oracle.

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

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

Docker Pull Command

docker pull isimplelab/oracle