我是靠谱客的博主 可爱海燕,最近开发中收集的这篇文章主要介绍k8s系列~docker mysql,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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中进行容器化的管理,敬请期待下一篇,有错误和建议敬请留言指出

转载于:https://www.cnblogs.com/danhuangpai/p/9243363.html

最后

以上就是可爱海燕为你收集整理的k8s系列~docker mysql的全部内容,希望文章能够帮你解决k8s系列~docker mysql所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(32)

评论列表共有 0 条评论

立即
投稿
返回
顶部