暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

在Docker中制作GreenPlum数据库镜像

叶同学专栏 2021-04-16
1410

docker拉取centos7镜像

docker pull centos:7

创建名称为gp的容器,指定容器的hostname是gp4

docker run -itd --name gp -h gp4 centos:7
ceabe5439750 --生成容器的ID

拷贝greenplum的安装文件到容器

docker cp greenplum-db-xxx.bin ceabe5439750:/usr/local

进入容器,执行安装操作

docker exec -it gp /bin/bash

安装相关依赖包

yum install -y net-tools which openssh-clients openssh-server less zip unzip iproute.x86_64

docker中默认没有启动ssh,需要启动ssh

ssh-keygen -t  rsa -P "" -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t ecdsa -P "" -f /etc/ssh/ssh_host_ecdsa_key
ssh-keygen -t ed25519  -f /etc/ssh/ssh_host_ed25519_key
/usr/sbin/sshd

创建gpadmin用户

groupadd -g 3060 gpadmin
useradd -u 3060 -g gpadmin -m -s /bin/bash gpadmin
echo gpadmin| passwd  gpadmin --stdin

创建目录

mkdir -p /data/master
mkdir -p /data/primary

安装数据库到目录/usr/local/greenplum-db

/bin/bash greenplum-db-xxx.bin

修改目录权限

chown -R gpadmin:gpadmin /data
chown -R gpadmin:gpadmin /usr/local/greenplum-db*

gpadmin用户下操作
添加环境变量到.bashrc

source /usr/local/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/data/master/gpseg-1
export PGDATABASE=postgres

创建allhosts文件

gp4

创建gpinitsystem_config文件

ARRAY_NAME="EMC Greenplum DW"
SEG_PREFIX=gpseg
PORT_BASE=40000
declare -a DATA_DIRECTORY=(/data/primary /data/primary)
MASTER_HOSTNAME=gp4
MASTER_DIRECTORY=/data/master
MASTER_PORT=5432
TRUSTED_SHELL=ssh
CHECK_POINT_SEGMENTS=8
ENCODING=UNICODE
MACHINE_LIST_FILE=/home/gpadmin/allhosts

初始化数据库

gpinitsystem -c gpinitsystem_config

此时数据库创建成功,但有个问题,每次启动容器的时候,sshd服务都不会自启动,需要手工执行。下面我们用Dockerfile来自定义我们的镜像,让sshd服务自启动。

当前操作的容器提交保存为镜像gp:v1

docker commit -a 'yejf' ceabe5439750 gp:v1

创建 Dockerfile文件

FROM gp:v1
ENTRYPOINT ["/usr/sbin/sshd","-D"]

根据自定义的Dockerfile文件创建镜像

docker build -t gp:4 .

根据创建的镜像创建容器,使用本地端口映射到容器内端口5432

docker run -itd --name gp4 -h gp4 -p 4444:5432 gp:4

创建完成后,进入容器,直接切换gpadmin用户,能够正常启动数据库了,容器外可直接通过指定的4444映射端口访问数据库

把创建好的镜像导出到本地


小结
 若安装多节点的greenplum数据库,在一台机器下却是没必要的。如果作为测试,docker安装好greenplum后打包成镜像,可以在一个新的环境快速运行greenplum数据库。


文章转载自叶同学专栏,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论