openGauss单节点Docker镜像制作

从openGauss开源社区下载对应平台的安装包。

  1. 登录openGauss开源社区,选择对应平台的最新安装包下载。对于个人开发者或非企业级环境,下载极简安装包(不安装OM等组件)即可。
  2. 编辑Dockerfile 脚本
#opengauss的 Dockerfile 镜像脚本

#引入依赖的centos7环境
FROM centos:7

#环境变量配置
ENV GAUSSHOME=/opengauss/install
ENV PATH=$GAUSSHOME/bin:$PATH
ENV LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH

ENV OPENGAUSS_VERSION=3.0.0
CMD ["/bin/bash"]

#工作目录
WORKDIR /opengauss
#作者信息
MAINTAINER wangchao "[email protected]"

#安装openGauss依赖软件
RUN yum -y install bzip2 libaio-devel flex bison ncurses-devel glibc-devel patch redhat-lsb-core readline-devel libnsl net-tools &> /dev/null && yum clean all

#创建安装目录
RUN mkdir -p /opengauss/install 
#拷贝压缩包到临时目录
COPY openGauss-${OPENGAUSS_VERSION}-CentOS-64bit.tar.bz2  /opengauss
# 解压安装包 并创建系统用户,设置目录安装权限
RUN tar -jxf /opengauss/openGauss-${OPENGAUSS_VERSION}-CentOS-64bit.tar.bz2 -C /opengauss/install && rm -f /opengauss/openGauss-${OPENGAUSS_VERSION}-CentOS-64bit.tar.bz2 && \
useradd -ms /bin/bash  opengauss && chown -R opengauss:opengauss /opengauss

# 执行sysctl -p 修改内核配置需要提升系统执行权限,docker 在build,run时是无特权模式。
COPY sysctl.conf /etc/

USER opengauss
RUN sh /opengauss/install/simpleInstall/install.sh  -w gauss@123

EXPOSE 5432

修改内核的配置:因为在你安装install命令的时候会出现如下报错

On systemwide basis, the maximum number of SEMMNI is not correct. the current SEMMNI value is: 128. Please check it.

解决:在/etc/sysctl.conf中加入语句kernel.sem = 250 32000 100 999,然后执行sysctl -p

docker 在build,run时是系统是无特权模式,此时实际上还是不能执行sysctl -p来修改内核配置,需要提升系统执行权限。

 解决:我们在docker run 生成opengauss容器时 设置 --privileged=true 来提升系统权限。

参考命令如下:

docker run --name opengauss --privileged=true -d -e GS_PASSWORD=Gauss@123 -v /gauss:/var/lib/opengauss enmotech/opengauss:latest

#登录opengauss容器

docker container exec -it opengauss /bin/bash

构建Docker镜像

docker build -f Dockerfile -t opengauss:3.0.0 .

清理docker 已停止进程

docker rm $(docker ps --all -q -f status=exited)

清理无效镜像

docker rmi -f $(docker images | grep "" | awk "{print \$3}")

你可能感兴趣的:(Docker,Linux,openGauss,docker,Dockerfile,openGauss)