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
相关文章
|
3天前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
51 26
|
27天前
|
人工智能 API 数据安全/隐私保护
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
NextChat 是一个可以在 GitHub 上一键免费部署的私人 ChatGPT 网页应用,支持 GPT3、GPT4 和 Gemini Pro 模型。该项目在 GitHub 上获得了 63.8k 的 star 数。部署简单,只需拉取 Docker 镜像并运行容器,设置 API Key 后即可使用。此外,NextChat 还提供了预设角色的面具功能,方便用户快速创建对话。
118 22
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
|
1月前
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
377 11
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
12天前
|
Java 关系型数据库 MySQL
如何将Spring Boot + MySQL应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + MySQL应用程序部署到Pivotal Cloud Foundry (PCF)
33 5
|
11天前
|
Java 应用服务中间件 Docker
将基于 Spring 的 WAR 应用程序部署到 Docker:详尽指南
将基于 Spring 的 WAR 应用程序部署到 Docker:详尽指南
19 2
|
17天前
|
Java Linux Docker
什么是 Docker?如何将 Spring Boot 应用程序部署到 Docker?
什么是 Docker?如何将 Spring Boot 应用程序部署到 Docker?
32 3
|
24天前
|
机器学习/深度学习 数据采集 Docker
Docker容器化实战:构建并部署一个简单的Web应用
Docker容器化实战:构建并部署一个简单的Web应用
|
24天前
|
监控 前端开发 Java
【技术开发】接口管理平台要用什么技术栈?推荐:Java+Vue3+Docker+MySQL
该文档介绍了基于Java后端和Vue3前端构建的管理系统的技术栈及功能模块,涵盖管理后台的访问、登录、首页概览、API接口管理、接口权限设置、接口监控、计费管理、账号管理、应用管理、数据库配置、站点配置及管理员个人设置等内容,并提供了访问地址及操作指南。
|
29天前
|
运维 开发者 Docker
Docker Compose:简化容器化应用的部署与管理
Docker Compose:简化容器化应用的部署与管理
|
29天前
|
Docker 微服务 容器
使用Docker Compose实现微服务架构的快速部署
使用Docker Compose实现微服务架构的快速部署
55 1