Windows 下的 Docker 部署
本文包含在 Windows 10 中通过 Docker Desktop 和 Hyper -V 部署运行 YMatrix 的主要步骤,整个安装过程可能需要重启系统两次。
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. 部署 YMatrix Docker
3.1 确认 Docker 安装成功
在 Windows 中以管理员身份运行 PowerShell 或者 CMD,执行 docker --version
,确认 docker 命令能正常运行。
3.2 拉取 YMatrix 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
修改完成后,你需要根据数据库软件版本选择以下其中一种命令,重新加载配置文件,使其生效。
mxstop -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 / YMatrix 常用操作
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 账户):
- mxstate:查看当前数据库的状态
- mxstart -a:启动数据库
- mxstop -a:停止数据库
- mxstop -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. 使用客户端工具访问 YMatrix
本文演示如何使用 DBeaver 访问 YMatrix。 先从官网下载社区版。
5.1 新建连接
连接类型选择“PostgreSQL”:
5.2 填写连接信息
填写数据库连接信息,包括用户名和密码。
(注意,在本例中已将 Docker 容器的端口映射到了 Windows 服务器,所以这里的 IP 地址可以直接填写 localhost)
在 PostgreSQL 标签页,勾选“显示非缺省的数据库”。
点击“测试连接”,或者“确定”完成连接配置。