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中进行容器化的管理,敬请期待下一篇,有错误和建议敬请留言指出
k8s系列~docker mysql的更多相关文章
- Docker & k8s 系列一:快速上手docker
Docker & k8s 系列一:快速上手docker 本篇文章将会讲解:docker是什么?docker的安装,创建一个docker镜像,运行我们创建的docker镜像,发布自己的docke ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录
0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.感谢 在此感谢.net ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之集群部署环境规划(一)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.环境规划 软件 版本 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之自签TLS证书及Etcd集群部署(二)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.服务器设置 1.把每一 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之flanneld网络介绍及部署(三)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.flanneld介绍 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 1.部署master组件 ...
- Docker系列之MySQL安装教程
Docker系列之MySQL安装教程 有了前面的基础教程Docker系列之常用命令操作手册之后,本博客记录一篇mysql的安装教程 mysql镜像查询命令 docker search mysql 几个 ...
- Docker & k8s 系列二:本机k8s环境搭建
本篇将会讲解k8s是什么?本机k8s环境搭建,部署一个pod并演示几个kubectl命令,k8s dashboard安装. k8s是什么 k8s是kubernetes的简写,它是一个全新的基于容器技术 ...
- Docker & k8s 系列三:在k8s中部署单个服务实例
本章将会讲解: pod的概念,以及如何向k8s中部署一个单体应用实例. 在上面的篇幅中,我们了解了docker,并制作.运行了docker镜像,然后将镜像发布至中央仓库了.然后又搭建了本机的k8s环境 ...
随机推荐
- 17mysql2█▓
一.数据库的查询用法 1. 数据表记录的查询: 运算符.虑重.列运算.别名.排序.聚合函数.分组 1.1数据准备 create table exam( id int primary key aut ...
- python 模块之-hashlib
python 模块hashlib import hashlib m=hashlib.md5() # 生成MD5加密对象 m.update('jiami-string'.encode(' ...
- Web Scraper爬取就是这么简单
这应该是最全的一个文档了 https://www.jianshu.com/p/e4c1561a3ea7 所以我就不介绍了,大家直接看就可以了,有问题可以提出来,我会针对问题对文章进行补充~
- jenkins和sonar的几个问题
错误1:有个pom文件内容错了,但是在jenkins上面编译的时候,控制台将这个错误信息给打出来了,maven的编译也打印了failed with error,但是jenkins的job并没有因此而停 ...
- bzoj 4552 [Tjoi2016&Heoi2016]排序 (二分答案 线段树)
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=4552 题意: 给你一个1-n的全排列,m次操作,操作由两种:1.将[l,r]升序排序,2 ...
- postgresql c library use
#include <stdio.h> #include <libpq-fe.h> int main() { int lib_ver = PQlibVersion(); prin ...
- 洛谷P4035 [JSOI2008]球形空间产生器(高斯消元)
洛谷题目传送门 球啊球 @xzz_233 qaq 高斯消元模板题,关键在于将已知条件转化为方程组. 可以发现题目要求的未知量有\(n\)个,题目却给了我们\(n+1\)个点的坐标,这其中必有玄机. 由 ...
- 【BZOJ2302】[HAOI2011]Problem C(动态规划)
[BZOJ2302][HAOI2011]Problem C(动态规划) 题面 BZOJ 洛谷 题解 首先如果\(m=0\)即没有特殊限制的话,那么就和这道题目基本上是一样的. 然而这题也有属于这题的性 ...
- 【LOJ#6280】数列分块4
题目大意:维护一个长度为 N 的序列,支持两种操作:区间修改.区间求和.N <= 50000 题解:在维护分块的同时,维护每个区间的和,保证在 \(O(1)\) 的时间查询答案. 代码如下 #i ...
- MATLAB:增加噪声,同时多次叠加噪声图和原图以及求平均图像(imnoise,imadd函数)
本次涉及了对原图像增加高斯噪声.多次叠加原图和高斯噪声图以及叠加后的平均图像. close all; %关闭当前所有图形窗口,清空工作空间变量,清除工作空间所有变量 clear all; clc; R ...