• 2024广东省职业技能大赛云计算赛项实战——容器化部署MariaDB


    容器化部署MariaDB

    前言

    今年比赛的容器化部署第一道考的好像就是这个,是往年国赛的题,直接给照搬过来了,今天就做做这道题:
    编写Dockerfile构建镜像erp-mysql:v1.0,要求使用centos7.9.2009镜像作为基础镜像,完成MariaDB数据库的安装,设置root用户的密码为tshoperp,新建数据库jsh_erp并导入数据库文件jsh_erp.sql,并设置MariaDB数据库开机自启。

    环境使用的是之前搭建的容器环境:2024广东省职业技能大赛云计算赛项实战——容器云平台搭建-CSDN博客
    因为只需要k8s环境,只需要用kubeeasy安装到k8s就行了

    操作过程

    解压ERP压缩包

    [root@k8s-master-node1 ~]# tar -zxf ERP.tar.gz 
    [root@k8s-master-node1 ~]# ls ERP
    app.jar  CentOS_7.9.2009.tar  jsh_erp.sql  nginx  yum
    

    加载系统镜像

    #先切换至ERP目录
    [root@k8s-master-node1 ~]# cd ERP/
    #加载CentOS 7.9镜像
    [root@k8s-master-node1 ERP]# docker load -i CentOS_7.9.2009.tar    
    Loaded image: centos:centos7.9.2009
    

    编写仓库文件

    [root@k8s-master-node1 ERP]# vi local.repo
    [erp]
    name=erp
    baseurl=file:///root/yum/
    enabled=1
    gpgcheck=0
    

    编写数据库安装、配置脚本

    [root@k8s-master-node1 ERP]# vi init.sh
    #! /bin/bash
    #指定root用户进行初始化数据库
    mysql_initall_db --user=root
    #指定root用户启动服务,并且在后台异步运行
    mysqld_safe --user=root &
    #这里休眠5秒,只是确保服务完全启动和初始化
    sleep 5
    #根据题目的要求,设置数据库账号密码
    mysqladmin -u root password 'tshoperp'
    #连接数据库,给root用户授予所有权限,flush privileges可以刷新权限,使设置生效
    mysql -uroot -ptshoperp -e "grant all on *.* to 'root'@'%' identified by 'tshoperp';flush privileges;"
    #根据题目的要求,创建数据库并导入数据库脚本文件
    mysql -uroot -ptshoperp -e "create database jsh_erp;use jsh_erp;source /opt/jsh_erp.sql;"
    

    编写Dockerfile文件

    [root@k8s-master-node1 ERP]# vi Dockerfile-mariadb
    #指定镜像
    FROM centos:centos7.9.2009
    #删除系统源
    RUN rm -rf /etc/yum.repos.d/*
    #移入我们写的仓库文件
    COPY local.repo /etc/yum.repos.d/
    #因为我们仓库文件写的是主目录,所以把软件源移动到主目录
    COPY yum /root/yum
    #设置容器内部的字符编码为UTF-8
    ENV LC_ALL en_US.UTF-8
    #安装mariadb服务
    RUN yum -y install mariadb mariadb-server
    #因为我们在数据库安装的脚本导入数据库步骤里写的是/opt/jsh_erp.sql,所以我们将脚本文件移动到opt目录
    COPY jsh_erp.sql /opt/
    #将数据库安装、配置脚本也移动到opt目录
    COPY init.sh /opt/
    #执行脚本
    RUN bash /opt/init.sh
    #在容器运行时将3306端口暴露出来
    EXPOSE 3306
    #启动命令,启动MariaDB服务器,并使用root用户身份运行。
    CMD ["mysqld_safe","--user=root"]
    

    构建镜像

    [root@k8s-master-node1 ERP]# docker build -t erp-mysql:v1.0 -f Dockerfile-mariadb .
    ...
    Successfully built e737983b1c8b
    Successfully tagged erp-mysql:v1.0
    #检查无误
    [root@k8s-master-node1 ERP]# docker images | grep erp
    erp-mysql                                           v1.0             e737983b1c8b   8 minutes ago   1.14GB
    

    后语

    构建好后,拍摄快照,我们的最终目标是完成ERP管理系统的部署。还需要构建redis、nginx和erp的镜像,最后编写yaml文件部署ERP。

  • 相关阅读:
    3. 运行时间
    命令执行漏洞(附例题)
    LabVIEW LINX Toolkit控制Arduino设备(拓展篇—1)
    JVM 系列(6) —— JVM 类加载机制
    神奇的javascript 语言
    Docker快速入门到项目部署,MySQL部署+Nginx部署
    Maven项目快速打包
    【unity插件】UGUI的粒子效果(UI粒子)—— Particle Effect For UGUI (UI Particle)
    木马免杀
    电力系统直流潮流分析【N-1】(Matlab代码实现)
  • 原文地址:https://blog.csdn.net/kuuuugua/article/details/139786670