Развертывание MatrixDB Docker в Windows

В данной статье описаны основные шаги запуска MatrixDB через Docker Desktop и развертывание с использованием Hyper-V в Windows 10. В процессе установки может потребоваться перезагрузка системы дважды.

1. Включение Hyper-V:

1.1 Включение Hyper-V через командную строку

Щелкните правой кнопкой мыши меню «Пуск» и запустите PowerShell от имени администратора, выполните команду:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

1.2 Включение Hyper-V через графический интерфейс

Откройте параметры Windows и перейдите в раздел «Приложения»
1

На правой стороне окна «Приложения и компоненты» нажмите на соответствующие параметры — «Программы и компоненты»
2

Нажмите «Включение или отключение компонентов Windows»
3

Установите флажок для активации Hyper-V

4

Нажмите кнопку «ОК», дождитесь завершения обновления Windows и перезагрузите компьютер
5

2. Установка Docker Desktop

Официальный сайт загрузки Docker Desktop:
https://hub.docker.com/editions/community/docker-ce-desktop-windows

(Примечание: данная версия доступна только для операционной системы Windows 10 Professional, Enterprise, Education и некоторых домашних версий.)

2.1 Установка

Нажимайте «Далее» до конца, затем «Готово» для завершения установки
6
7
8

Если в процессе возникнут проблемы, как показано ниже, нажмите ссылку в окне подсказки
9

Следуйте инструкциям на странице, нажмите на ссылку (желтая область) на изображении ниже, чтобы загрузить и установить пакет обновления ядра Linux для WSL2, затем перезагрузите компьютер согласно указаниям.
10

2.2 Запуск Docker Desktop

Если вы видите следующий интерфейс, установка прошла успешно.
11

Кроме того, вы можете увидеть службу «Docker Desktop Service» в списке служб Windows
12

3. Развертывание MatrixDB Docker

3.1 Проверка успешности установки Docker

Запустите PowerShell или CMD от имени администратора в Windows, выполните docker --version, чтобы убедиться, что команда docker работает корректно.

13

3.2 Загрузка образа MatrixDB Docker

Выполните в командной строке PowerShell или CMD:

docker pull matrixdb/centos7_demo

14

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

docker run -it -p 5432:5432 --name mxdemo matrixdb/centos7_demo

Основное описание параметров:

  • -i: Запуск контейнера в интерактивном режиме, обычно используется вместе с -t;
  • -t: Назначение псевдо-терминала контейнеру, обычно используется совместно с -i;
  • -p: Указание сопоставления портов, формат: порт хоста:порт контейнера;
  • -d: Запуск контейнера в фоновом режиме и возврат идентификатора контейнера;
  • --name: Указание имени контейнера

3.4 Изменение файла авторизации

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

vi /home/mxadmin/data/master/gpseg-1/pg_hba.conf

Добавьте в последнюю строку:

host    all     all     0.0.0.0/0       md5

15

Перезагрузите pg_hba.conf, чтобы изменения вступили в силу.

gpstop -u

3.5 Изменение пароля и создание тестовой базы данных

[mxadmin@2e807ee654a2 ~]$ psql -d postgres
psql (12)
Type "help" for help.
postgres=# alter role mxadmin with password 'mxadmin';
ALTER ROLE
postgres=# create database testdb;
CREATE DATABASE

3.6 Выход из контейнера Docker

Текущая сессия — это сессия создания контейнера, поэтому прямой ввод команды exit для выхода из командной строки контейнера приведёт к остановке работающего контейнера Docker.

Правильный способ — использовать команду CTRL+D для выхода либо просто закрыть окно PowerShell.

4. Обычные операции доступа к Docker/MatrixDB

4.1 Запуск созданного контейнера Docker

Используйте команду docker start, добавив CONTAINERID, чтобы запустить контейнер. Обратите внимание, что в CONTAINERID нужно указывать только первые 4 символа.

Используйте команду docker ps, чтобы просмотреть CONTAINERID и запустить контейнер:

PS C:\Users\PaulWang> docker ps -a
CONTAINER ID   IMAGE                   COMMAND                  CREATED          STATUS                     PORTS     NAMES
2e807ee654a2   matrixdb/centos7_demo   "/home/mxadmin/entry…"   33 minutes ago   Exited (0) 2 minutes ago             mxdemo
PS C:\Users\PaulWang> docker start 2e80
2e80

Также можно нажать кнопку запуска в графическом интерфейсе Docker Desktop, чтобы запустить контейнер.
16

4.2 Вход в контейнер

Вход под учётной записью root:

docker exec -it 2e87 /bin/bash

Вход под учётной записью mxadmin:

docker exec -it -u mxadmin 2e87 /bin/bash

4.3 Управление базой данных

Следующие команды управления используются для работы с базой данных (обратите внимание: используйте учётную запись mxadmin):

  • gpstate: Проверка состояния текущей базы данных
  • gpstart -a: Запуск базы данных
  • gpstop -a: Остановка базы данных
  • gpstop -a -M fast: Быстрая остановка базы данных

4.4 Использование psql для доступа к базе данных в контейнере

[mxadmin@2e807ee654a2 /]$ psql -d testdb
psql (12)
Type "help" for help.
testdb=# create table tb1(id int,name varchar(20)) distributed by(id);
CREATE TABLE

4.5 Остановка работающего контейнера

Используйте команду docker stop с указанием CONTAINERID для остановки работающего контейнера:

PS C:\Users\PaulWang> docker stop 2e80
2e80

Также можно нажать кнопку «Остановить» в графическом интерфейсе Docker Desktop, чтобы остановить контейнер.
17

5. Подключение к MatrixDB с помощью клиентских инструментов

В этой статье демонстрируется подключение к MatrixDB с помощью DBeaver.
Сначала скачайте бесплатную версию с официального сайта https://dbeaver.io/.

5.1 Создание нового соединения

Выберите тип соединения «PostgreSQL»:
18

5.2 Заполнение информации о соединении

Заполните данные подключения к базе данных, включая имя пользователя и пароль.
(Обратите внимание: в данном случае порт контейнера Docker уже сопоставлен с сервером Windows, поэтому IP-адрес можно указать как localhost)
19

На вкладке PostgreSQL установите флажок «Show non-default databases».
20

Нажмите «Test Connection» или «OK», чтобы завершить настройку подключения.