MySQL与容器
文章转载自MySQL解决方案工程师 ,作者徐轶韬
最近经常被问到,MySQL可以适用于容器吗?在这一篇里,简单地为大家介绍一下MySQL在容器上的使用。
既然说到了容器,首先介绍一下关于容器的相关内容。
什么是容器?让我们看一下官网上怎么说,https://www.docker.com/resources/what-container
"A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another. A Docker container image is a lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries and settings."
翻译过来的内容是"容器是软件的标准单元,它将代码及其所有依赖项打包,以便应用程序在不同的计算环境之间快速可靠地运行。Docker容器映像是一个轻量级的、独立的、可执行的软件包,它包括运行应用程序所需的一切:代码、运行时、系统工具、系统库和设置"。概述一下,用红颜色标识出来的字便是容器的特征。容器和虚拟机具有类似的资源隔离和分配优势,但功能不同,容器虚拟化的是操作系统而不是硬件。容器更轻便,更高效。Docker是实现容器技术的一个开源项目,它将程序以及程序所有的依赖都打包到Docker容器里面。使用Docker的好处之一,可以避免"明明在我这里好用,为什么在你那里不好用",这个画面开发的小伙伴和测试的小伙伴可以脑补一下。
使用Docker时,需要用到Docker镜像。镜像可以从正式的镜像库下载,也可以人工制作和更新。
MySQL的镜像可以从 https://hub.docker.com/下载,这里面既有社区版MySQL的镜像,也有企业版MySQL的镜像。另外,也可以从https://container-registry.oracle.com下载两个版本。
部署MySQL时,可以参照下面的步骤:
安装Docker服务。下载Docker镜像:
docker pull mysql
启动Docker容器:
docker run --name=mysqlse -e MYSQL_RANDOM_ROOT_PASSWORD=true -e MYSQL_ONETIME_PASSWORD=true -d mysql:latest
查看运行的容器:
docker ps
查看日志,确认生成的root密码:
docker logs mysqlse
连接MySQL服务器:
docker exec -it mysqlse mysql -uroot -p
将配置文件和数据目录从底层主机系统映射到容器:
docker run --name=mysqlse -e MYSQL_RANDOM_ROOT_PASSWORD=true -v [path on host machine]/my.cnf:/etc/my.cnf -v [path on host machine]/datadir:/var/lib/mysql -d mysql:latest
关于详细的安装方法可以参照:https://dev.mysql.com/doc/refman/8.0/en/linux-installation-docker.html
让我们考虑下一个问题,如果使用了成百上千的容器,该怎样管理呢?我们需要一个管理系统来帮助创建和部署复杂的环境。现在有很多这样的项目帮助我们实现这一点,例如:Kubernetes,Swarm, Rancher, Docker Compose,...。
以Kubernetes为例,Kubernetes是一个开源项目,允许将容器化的应用程序部署到集群,并且能够控制它们。Kubernetes是最活跃的容器编排项目,它使用客户端服务器(C/S)的架构,能够用于包括Docker在内的容器。
简单介绍一下Kubernetes的几个概念:
Node:容器运行的地方
Pods:共享存储和网络的一组容器
高可用:当Node或Pod不可用时,Kubernetes将Pod安置到其他可用的Node
能够直接下载Docker镜像
资源控制包括网络和存储
可以和其他项目整合提供存储网络等
MySQL提供了一个用于Kubernetes的 MySQLOperator for Kubernetes,目前还是一个实验室版本,它可以安装在现有的Kubernetes集群内,用户能够使用简单的配置格式创建和管理MySQL集群。这个项目一开始是为了帮助内部团队更容易地在Kubernetes中运行MySQL,但很快就发现很多其他用户可能也面临着类似的问题,因此也将其开源提供给广大用户使用。https://github.com/oracle/mysql-operator
MySQL Operator for Kubernetes可以部署社区版和企业版的MySQL,可以配置管理InnoDB Cluster,当InnoDB Cluster的成员宕机时,MySQL Operator可以自动将其重新加入集群。此外,MySQL Operator还支持备份与恢复。
关于MySQL Operator的详细内容可以参考:https://blogs.oracle.com/developers/introducing-the-oracle-mysql-operator-for-kubernetes
老师打买了打我的母亲是解放前(大概一九三几年读书到四几年)完成学业,并开始工作的。她在世时,也零星讲起一些往事。比如,小学读书是不付学费的(估计是同族中有钱人出的),学校设在祠堂里,不分贫富,
遇到老师借米今天来说说借给老师米的事。二十几年前的一天,我的先生在路上突然碰到久未谋面,读高中时的老师。没聊几句,老师马上提出借米,说临时遇到困难,过三天马上还。先生觉得是老师,就很信任,直接
三个最好的老师是谁?万事万物是孩子最好的老师。家里的桌椅板凳,锅碗瓢盆,家外的花草树木鸟兽虫鱼,用上眼耳鼻舌身意,都是孩子最好的学习的内容。做父母的把孩子送到有些培训机构,学那些呆板的知识,费钱费力,
春钓鲤鱼想连杆,你得注意几个问题!鲤鱼是一年四季都可以垂钓的鱼种,鲤鱼个体较大,中钩后手感非常的棒,因此,深受广大垂钓爱好者的喜爱。但想要在春季钓上鲤鱼,需要我们注意的细节较多。今天就和大家来聊一聊春季应该怎样才能
外出野钓注意这些事项,保你安全归家!不少钓友都喜欢野钓,抛去一切烦恼,把自己置身于美丽山水之间,野钓既能减压,还能陶冶情操。外出野外钓鱼不定因素太多,要选好天气,看好钓点,准备好钓具等。装备齐全的同时还要注意自身安全
寒冷冬季我照样爆护,因为我有秘诀!在冬天,纵然寒风刺骨,也照样阻止不了钓鱼爱好者的脚步。想要在冬天钓上鱼,不光要耐得住像刀子一样的北方刮脸,还要有扎实的垂钓技巧。大家都知道,冬天的鱼儿活性低食欲差,想要钓上基本处于
你确定你会打窝?看看我是怎么打窝的!打窝是指通过手抛竿抛等方式把窝料送到钓点,从而在钓点处形成以颜色气味的聚集,起到诱鱼进窝留鱼在窝的作用。想要钓窝得多,必须要打窝。打窝是野钓中必不可少的一个重要步骤,在水域广阔的野
春钓草鱼,你不但得会把握时机,还得妙用饵料!客家人屋前最喜欢挖口小鱼塘,养上几尾红鲤鱼和草鱼,好看又可以果腹,小猫家也不例外。说到这两种鱼,脑海里就能浮出好几种做法。小时候穷,没菜吃的时候就会提着鱼竿,到小鱼塘里钓点鱼加餐。
优秀孩子的家庭密码1。多看些非虚构图书这些作品让孩子了解现实,学会处理实际问题。63的成功人士家庭,会帮助孩子完成每个月至少读两本非虚构图书的计划。相比而言,只有3的贫困家庭有同样的习惯。什么是非虚
钓最野的鱼,用最实惠的饵物价飞涨,现在钓鱼的成本越来越高,五花八门的各种钓具,各类钓场,使小编的小金库日渐消瘦。本着能省就省的原则,今天就来动手做一款最实惠的饵发酵老玉米。自己动手丰衣足食,自己做的饵,可
它凶狠残暴狡诈无比?且能活到200岁?详解如何路亚黑斑狗鱼一说到黑斑狗鱼,我就会联想到狐狸,两种的狡猾程度可有得一比。黑斑狗鱼分布广泛,食量大,冬季仍会强烈的觅食,尤其在繁殖后食欲更加旺盛。但是要想路亚上这奸诈无比的黑斑狗鱼可得费上一番功