美文网首页
Docker系列——kuboard部署mysql

Docker系列——kuboard部署mysql

作者: 那些年搬过的砖 | 来源:发表于2020-01-17 09:19 被阅读0次
本地配置文件

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

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查看镜像

至此,镜像已经成功制作,并推送到了私有仓库,下面开始基于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

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


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

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


相关文章

网友评论

      本文标题:Docker系列——kuboard部署mysql

      本文链接:https://www.haomeiwen.com/subject/zcqczctx.html