Docker系列——kuboard部署mysql

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Docker系列——kuboard部署mysql

本地配置文件


切换到本地配置文件及镜像构建文件目录

cd /opt/mysql_dockerfile


vi em-dockerfile创建镜像构建文件

FROM mysql:5.7.26
ADD my.cnf /etc/mysql/conf.d/my.cnf
ADD sm.sql /docker-entrypoint-initdb.d/sm.sql
EXPOSE 3306


ADD 源文件 目标文件


ADD my.cnf 将本地配置文件添加到镜像中


ADD sm.sql 将初始化脚本条件到镜像中,在镜像启动时会运行


vi my.cnf创建配置文件,防止乱码

[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake


vi sm.sql创建初始化脚本,可以从数据库中导出,但是一般整库的导出只有建表语句,所以还需要手工添加建库语句,并使用该库(注意17行及21行)

/*
      2  Navicat Premium Data Transfer
      3
      4  Source Server         : 172.16.14.10(开发)
      5  Source Server Type    : MySQL
      6  Source Server Version : 50724
      7  Source Host           : 172.16.14.10
      8  Source Database       : sm
      9
     10  Target Server Type    : MySQL
     11  Target Server Version : 50724
     12  File Encoding         : utf-8
     13
     14  Date: 01/16/2020 15:47:38 PM
     15 */
     16
     17 CREATE DATABASE sm;
     18
     19 SET NAMES utf8mb4;
     20 SET FOREIGN_KEY_CHECKS = 0;
     21 use sm;
     22 -- ----------------------------
     23 --  Table structure for `t_alarm_dictionary`
     24 -- ----------------------------
     25 DROP TABLE IF EXISTS `t_alarm_dictionary`;
     26 CREATE TABLE `t_alarm_dictionary` (
     27   `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增长id',
     28   `dict_id` int(11) DEFAULT NULL COMMENT '字典编码',
     29   `dict_name` varchar(100) DEFAULT NULL COMMENT '字典名称',
     30   `parent_id` int(11) DEFAULT NULL COMMENT '父字典编码',
     31   `key` varchar(200) DEFAULT NULL COMMENT '同一类字典的统一标识符',
     32   `alarm_value_unit` varchar(200) DEFAULT NULL COMMENT '告警值/告警阈值单位',
     33   `comment` varchar(200) DEFAULT NULL COMMENT '注释',
     34   `enable_status` int(3) DEFAULT '1' COMMENT '是否启用(0默认为不启用,1启用)',
     35   `device_type` int(2) DEFAULT NULL COMMENT '告警的区分符  0:单相 1:三相',
     36   `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
     37   `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
     38   PRIMARY KEY (`id`),
     39   UNIQUE KEY `dict_id` (`dict_id`)
     40 ) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='告警数据字典';
     41
     42 -- ----------------------------
     43 --  Records of `t_alarm_dictionary`
     44 -- ----------------------------
     45 BEGIN;


配置文件准备好之后,就可以构建镜像了(确保是在配置文件所在目录执行构建语句)


构建镜像


注意最后的点及前面的空格

docker build -f /opt/mysql_dockerfile/em-dockerfile -t em-sm/mysql:latest .


运行结果如下:

[root@k8s-master mysql_dockerfile]# docker build -f /opt/mysql_dockerfile/em-dockerfile -t em-sm/mysql:latest .
Sending build context to Docker daemon  1.842MB
Step 1/4 : FROM mysql:5.7.26
 ---> e9c354083de7
Step 2/4 : ADD my.cnf /etc/mysql/conf.d/my.cnf
 ---> 0f8d3a611b30
Step 3/4 : ADD sm.sql /docker-entrypoint-initdb.d/sm.sql
 ---> b2909d615513
Step 4/4 : EXPOSE 3306
 ---> Running in b6c30efaa8cf
Removing intermediate container b6c30efaa8cf
 ---> 587aef27d240
Successfully built 587aef27d240
Successfully tagged em-sm/mysql:latest


给镜像打tag


tagID根据实际情况填写,可通过docker images查看

docker tag 587aef27d240 172.16.14.6/em-sm/mysql:latest


将镜像推送到私有仓库


本文是推送到私有harbor仓库

docker push 172.16.14.6/em-sm/mysql:latest


运行结果如下:

[root@k8s-master mysql_dockerfile]# docker tag 587aef27d240 172.16.14.6/em-sm/mysql:latest
[root@k8s-master mysql_dockerfile]# docker push 172.16.14.6/em-sm/mysql:latest
The push refers to repository [172.16.14.6/em-sm/mysql]
b765c651ca64: Pushed
143e8d2f741a: Pushed
229aaa48c303: Layer already exists
b5ef0b1ea71d: Layer already exists
589aba1a5c0c: Layer already exists
f9c0afa43f04: Layer already exists
7e7fffcdabb3: Layer already exists
77737de99484: Layer already exists
2f1b41b24201: Layer already exists
007a7f930352: Layer already exists
c6926fcee191: Layer already exists
b78ec9586b34: Layer already exists
d56055da3352: Layer already exists
latest: digest: sha256:8cf67b2c1aa686c3dc679e9b31053f0f8ef4e4b608d7fbade2e82a3b17457af5 size: 3038


登录harbor查看镜像


image.png


至此,镜像已经成功制作,并推送到了私有仓库,下面开始基于kuboard部署镜像。


kuboard部署mysql


进入相应的命名空间,点击创建工作负载,填写表单


字段名称 填写内容 说明
服务类型 StatefulSet
服务分层 持久层
服务名称 em-sm-mysql
服务描述 数据库
副本数量 1 请填写1
容器名称 em-sm
镜像 172.16.14.6/em-sm/mysql:latest
Docker仓库密码 选择自己的私有仓库 没有就创建一个,对应harbor登录名及密码
抓取策略 Always
环境变量 MYSQL_ROOT_PASSWORD=root
Service ClusterIP(集群内访问)
协议:TCP 服务端口: 3306 容器端口: 3306

填写完成点击保存完成即可。


image.png


点击工作容器中的sh进入终端管理页面


密码就是上一步中设置的环境变量


image.png




相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
13天前
|
运维 网络安全 持续交付
IDEA+Docker 远程一键部署项目:技术干货分享
【10月更文挑战第4天】在现代软件开发中,快速、可靠、自动化的部署流程是提升开发效率和运维质量的关键。IDEA(IntelliJ IDEA)作为Java开发者首选的IDE,结合Docker这一轻量级容器化技术,能够实现远程一键部署项目,极大地简化了开发到生产的流程。今天,我将和大家分享这一组合在工作学习中的实际应用和技术干货。
73 3
|
15天前
|
Kubernetes 持续交付 Docker
利用 Docker 和 Kubernetes 实现微服务部署
【10月更文挑战第2天】利用 Docker 和 Kubernetes 实现微服务部署
|
5天前
|
关系型数据库 MySQL Linux
Docker安装Mysql5.7,解决无法访问DockerHub问题
当 Docker Hub 无法访问时,可以通过配置国内镜像加速来解决应用安装失败和镜像拉取超时的问题。本文介绍了如何在 CentOS 上一键配置国内镜像加速,并成功拉取 MySQL 5.7 镜像。
52 2
Docker安装Mysql5.7,解决无法访问DockerHub问题
|
8天前
|
JSON JavaScript 测试技术
【Docker项目实战】使用Docker部署PPTist在线演示文稿应用
【10月更文挑战第9天】使用Docker部署PPTist在线演示文稿应用
15 1
【Docker项目实战】使用Docker部署PPTist在线演示文稿应用
|
10天前
|
存储 前端开发 测试技术
【Docker项目实战】使用Docker部署Calcium网页计算器
【10月更文挑战第7天】使用Docker部署Calcium网页计算器
20 1
【Docker项目实战】使用Docker部署Calcium网页计算器
|
13天前
|
存储 测试技术 Linux
【Docker项目实战】使用Docker部署Radicale日历和联系人应用
【10月更文挑战第4天】使用Docker部署Radicale日历和联系人应用
53 2
【Docker项目实战】使用Docker部署Radicale日历和联系人应用
|
15天前
|
人工智能 数据安全/隐私保护 虚拟化
Docker部署MaxKB详细步骤(window系统)
这篇文章详细介绍了如何在Windows系统上使用Docker部署MaxKB,并提供了从安装Docker到运行MaxKB容器的详细步骤,以及如何通过浏览器访问和配置MaxKB来使用ollama和llama3模型进行问答。
122 1
Docker部署MaxKB详细步骤(window系统)
|
7天前
|
Web App开发 前端开发 测试技术
【Docker项目实战】使用docker部署tabler后台模版
【10月更文挑战第10天】使用docker部署tabler后台模版
20 0
【Docker项目实战】使用docker部署tabler后台模版
|
9天前
|
消息中间件 编解码 Docker
【Docker项目实战】Docker部署RabbitMQ消息中间件
【10月更文挑战第8天】Docker部署RabbitMQ消息中间件
22 0
【Docker项目实战】Docker部署RabbitMQ消息中间件
|
15天前
|
定位技术 文件存储 网络架构
Docker部署PhotoPrism、Immich图片管理应用,无需公网IP远程访问教程
除了Synology、QNAP、TerraMaster等品牌的NAS设备内置图库功能,市面上还有多种备受欢迎的第三方应用,如PhotoPrism、Immich、LibrePhotos、Piwigo、Photoview等。这些应用不仅提供强大的图片管理能力,还可通过Docker轻松部署。借助贝锐花生壳服务,即使没有公网IP也能实现远程访问,突破地理限制,提升数据可访问性和安全性,让用户随时随地管理私人图库。
58 1