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压缩包

shell 复制代码
[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

加载系统镜像

shell 复制代码
#先切换至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

编写仓库文件

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

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

shell 复制代码
[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文件

shell 复制代码
[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"]

构建镜像

shell 复制代码
[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。

相关推荐
engchina3 分钟前
使用 Cypher 查询语言在 Neo4j 中查找最短路径
数据库·neo4j
尘浮生6 分钟前
Java项目实战II基于Spring Boot的光影视频平台(开发文档+数据库+源码)
java·开发语言·数据库·spring boot·后端·maven·intellij-idea
威哥爱编程7 分钟前
SQL Server 数据太多如何优化
数据库·sql·sqlserver
小华同学ai9 分钟前
AJ-Report:一款开源且非常强大的数据可视化大屏和报表工具
数据库·信息可视化·开源
Acrelhuang30 分钟前
安科瑞5G基站直流叠光监控系统-安科瑞黄安南
大数据·数据库·数据仓库·物联网
wowocpp37 分钟前
ubuntu 22.04 硬件配置 查看 显卡
linux·运维·ubuntu
萨格拉斯救世主1 小时前
jenkins使用slave节点进行node打包报错问题处理
运维·jenkins
川石课堂软件测试1 小时前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
十叶知秋1 小时前
【jmeter】jmeter的线程组功能的详细介绍
数据库·jmeter·性能测试
pk_xz1234563 小时前
Shell 脚本中变量和字符串的入门介绍
linux·运维·服务器