在Windows部署 MatrixDB Docker
本文包含在Windows 10 中通过Docker Desktop和Hyper -V部署运行MatrixDB的主要步骤,整个安装过程可能需要重启系统两次。
1. 启用Hyper-V:
1.1 命令行方式启用Hyper-V
右键开始菜单并以管理员身份运行 PowerShell ,执行命令:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
1.2 图形界面启用Hyper -V
打开windows 设置,点击进入“应用”
在“应用与功能”窗口右侧点击相关设置“程序与功能”
点击“启动或关闭Windows功能”
勾选启用Hyper -V
点击确定按钮,等待Windows 更新完成,重启电脑
2. 安装Docker Desktop
Docker Desktop官方下载地址: https://hub.docker.com/editions/community/docker-ce-desktop-windows
(注意:此版本仅适用于 Windows 10 操作系统专业版、企业版、教育版和部分家庭版。)
2.1 安装
一路 Next,点击Finish 完成安装
如果按照过程中遇到下面的问题,请点击提示框的链接
按照页面中的提示,点击下图中链接(黄色部分),下载安装 wsl2的linux kerne 更新包,并按照提示重启电脑。
2.2 启动Docker Desktop
如看到如下界面,即表示安装启动成功。
另外,在Windows 服务列表中也可以看到“Docker Desktop Service”
3. 部署MatrixDB Docker
3.1 确认docker安装成功
在Windows 中以管理员身份运行 PowerShell 或者 CMD,执行 docker --version
,确认docker命令能正常运行。
3.2 拉取MatrixDB docker镜像
在PowerShell或者CMD命令行中执行:
docker pull matrixdb/centos7_demo
3.3 运行容器
docker run -it -p 5432:5432 --name mxdemo matrixdb/centos7_demo
主要参数说明:
- -i:以交互模式运行容器,通常与 -t 同时使用;
- -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
- -p: 指定端口映射,格式为:主机(宿主)端口:容器端口;
- -d: 后台运行容器,并返回容器ID;
- --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
重新加载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图形界面中点击 start按钮启动容器。
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的图形界面,点击stop按钮停止docker容器。
5. 使用客户端工具访问MatrixDB
本文演示如何使用DBeaver访问MatrixDB。 先从官网下载社区版。
5.1 新建连接
连接类型选择“PostgreSQL”:
5.2 填写连接信息
填写数据库连接信息,包括用户名和密码。 (注意,在本例中已将Docker容器的端口映射到了Windows服务器,所以这里的IP地址可以直接填写localhost)
在PostgreSQL标签页,勾选“显示非缺省的数据库”。
点击“测试连接”,或者“确定”完成连接配置。