docker封装mysql的一些心得
 简介:今天咱们来聊聊容器化mysql的一些心得
 版本:Docker version 18.03 mysql 5.7.21
考虑条件:
  1 选好合适的docker镜像
  2  容器安装的内容
  3 分离设置的方式
我的思路
   1 关于mysql 安装设计
       1 尽量只安装基础软件包+mysql服务在容器内,像percona等第三方软件不要安装在容器内,因为软件包本身会依赖很多软件,要保持容器的干净整洁
       2 上述第三方软件可以选择安装在宿主内,在宿主内通过映射端口进行操作
  2 关于mysql 服务设计
       1 mysql 数据目录和配置文件采用外挂方式,最后保存在本地磁盘,不要通过NFS等其他挂载方式,减少网络开销,配置文件也便于修改
       2 mysql 的err和pid的命名方式采用固定命名,因为容器每次重启的hostname都要改变
       3 mysql配置文件最好开启双写+双1模式,增强数据有效性,如果容器损坏造成页损坏导致数据不可用就很糟糕了
       4 mysql开机启动采用mysqld_safe形式,这样能使容器不退出
       5 对于mysql的初始化操作我的意见是初始化一次作为标准就足够了,然后将这部操作摘除dockerfile,将标准化的数据文件作为下一个容器的启动根据(记得删除auto.cnf)
  3 关于dockerfile编写
      1 尽量安装精简的软件,越少越好,最好只安装服务本身所 必须的软件.你要明白,docker本身只是做服务的容器
      2 大量的RUN命令能合并的都合并,这样能减少docker容器生成的嵌套层,这对于镜像本身是非常重要的
      3 开机启动脚本调用cmd命令
      4 对于dockerfile的编译,尽量将基础环境安装和不太变动的操作写在前面,这样在调试的时候会减少编译时间
      5 docker容器内不支持rc.local的开机启动
 4 docker运行的注意事项
     1 -e 选项可以赋予容器内变量,这样可以有效进行定制化启动,比如定制化buffer_pool,然后可以在my.cnf进行定制化后启动服务
     2 关于IP地址的固定我们也在探索

5 docker常用命令

1 docker build -t mysql:v1 . 编译dockerfile

2 docker ps 查看正在运行的容器

3 docker ps -a 查看历史运行的容器

4 docker image 查看镜像

5  docker rm $(docker ps -a -q) 删除所有容器

6 docker run -itd  mysql:v1  -e 'vale' -v 'directory' --name 'name' 启动

7 docker exec -it name /bin/bash 运行

8  docker tag 打标签 然后push  到私有仓库


总结:这只是一个单纯的docker定制,我们的目标是在k8s中进行容器化的管理,敬请期待下一篇,有错误和建议敬请留言指出

k8s系列~docker mysql的更多相关文章

  1. Docker & k8s 系列一:快速上手docker

    Docker & k8s 系列一:快速上手docker 本篇文章将会讲解:docker是什么?docker的安装,创建一个docker镜像,运行我们创建的docker镜像,发布自己的docke ...

  2. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录

    0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.感谢 在此感谢.net ...

  3. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之集群部署环境规划(一)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.环境规划 软件 版本 ...

  4. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之自签TLS证书及Etcd集群部署(二)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.服务器设置 1.把每一 ...

  5. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之flanneld网络介绍及部署(三)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.flanneld介绍 ...

  6. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 1.部署master组件 ...

  7. Docker系列之MySQL安装教程

    Docker系列之MySQL安装教程 有了前面的基础教程Docker系列之常用命令操作手册之后,本博客记录一篇mysql的安装教程 mysql镜像查询命令 docker search mysql 几个 ...

  8. Docker & k8s 系列二:本机k8s环境搭建

    本篇将会讲解k8s是什么?本机k8s环境搭建,部署一个pod并演示几个kubectl命令,k8s dashboard安装. k8s是什么 k8s是kubernetes的简写,它是一个全新的基于容器技术 ...

  9. Docker & k8s 系列三:在k8s中部署单个服务实例

    本章将会讲解: pod的概念,以及如何向k8s中部署一个单体应用实例. 在上面的篇幅中,我们了解了docker,并制作.运行了docker镜像,然后将镜像发布至中央仓库了.然后又搭建了本机的k8s环境 ...

随机推荐

  1. MyBatis:一对多关联查询

    MyBatis从入门到放弃四:一对多关联查询 前言 上篇学习了一对一关联查询,这篇我们学习一对多关联查询.一对多关联查询关键点则依然是配置resultMap,在resultMap中配置collecti ...

  2. SQL 从一个表读取数据存到另一个表

    原来没有的创建的表select * into 表A form 表B where条件 原来存在的表insert into 表A select * from 表B where 条件 INSERT INTO ...

  3. BZOJ3697采药人的路径——点分治

    题目描述 采药人的药田是一个树状结构,每条路径上都种植着同种药材.采药人以自己对药材独到的见解,对每种药材进行了分类.大致分为两类,一种是阴性的,一种是阳性的.采药人每天都要进行采药活动.他选择的路径 ...

  4. MT【45】抛物线外一点作抛物线的切线(尺规作图题)

    注1:S为抛物线焦点 注2:由切线的唯一性,以及切线时可以利用MT[42]评得到三角形全等从而得到切线平分$\angle MQS$得到

  5. cf757F Team Rocket Rises Again (dijkstra+支配树)

    我也想要皮卡丘 跑一遍dijkstra,可以建出一个最短路DAG(从S到任意点的路径都是最短路),然后可以在上面建支配树 并不会支配树,只能简单口胡一下在DAG上的做法 建出来的支配树中,某点的祖先集 ...

  6. cf609E Minimum Spanning Tree For Each Edge (kruskal+倍增Lca)

    先kruskal求出一个最小生成树,然后对于每条非树边(a,b),从树上找a到b路径上最大的边,来把它替换掉,就是包含这条边的最小生成树 #include<bits/stdc++.h> # ...

  7. 牛客网小白月赛5I区间(差分数组)

    链接:https://www.nowcoder.com/acm/contest/135/I来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 32768K,其他语言65536 ...

  8. afinalDb 用法

    研究Afinal是为了弄懂它到底是怎么实现的,它怎么就能够实现了呢?不过,现在先要看一下怎么用,再从表面推导内在. 本文就Afinal中建表.添加.删除.查找等常见数据库操作加以说明.探索. 一.创建 ...

  9. 常用数据结构及算法C#/Java实现

    常用数据结构及算法C#实现 1.冒泡排序.选择排序.插入排序(三种简单非递归排序) ,, , , , , , , , , }; //冒泡排序 int length = waitSort.Length; ...

  10. luogu P4198 楼房重建——线段树

    题目大意: 小A在平面上(0,0)点的位置,第i栋楼房可以用一条连接(i,0)和(i,Hi)的线段表示,其中Hi为第i栋楼房的高度.如果这栋楼房上任何一个高度大于0的点与(0,0)的连线没有与之前的线 ...