同福

Rancher v2.5.9使用Docker部署MySQL服务的方法【20220331】

介绍

介绍

今天福哥要带着大家学习Rancher部署一个服务的方法,大家都知道通过docker部署一个服务需要定制很多参数,包括容器名称、主机名称、镜像、端口映射、磁盘映射、网络配置、启动命令等等。

我们可以使用Dockerfile去简化这个操作,把这个敲命令变成编写配置文档,大大提高了可操作性。在Rancher里面我们可以通过“点点点”的方式界面化部署一个服务,这个简直不要太爽了~~

镜像

目录

这个镜像的目录结构。

home/topic/2022/0621/18/3973a0cd6d3e17f55d46d6ed001c9ca0.png

Dockerfile

这是福哥写的Dockerfile,大家可以拿去直接使用!

FROM registry.tongfu.net:5000/mysql:5.7-debian

MAINTAINER Andy Bogate
MAINTAINER tongfu@tongfu.net
MAINTAINER http://docker.tongfu.net
MAINTAINER 2022/6/21
MAINTAINER v1.0.0

EXPOSE 3306

# timezone
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo 'Asia/Shanghai' >/etc/timezone

# data
COPY mysqld.conf /etc/mysql/mysql.conf.d/mysqld.cnf

mysqld.conf

这个福哥使用的配置文件

[mysqld]

pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
log-error = /var/log/mysql/error.log
# By default we only accept connections from localhost
#bind-address = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

部署

名称

这个就是docker的name了。

名称可以随便起,建议使用英文。

home/topic/2021/0901/10/455f49e6765e6cf04082e95d2dbbc7bc.png

工作负载类型

类型很多,以后福哥会专门讲解这个,今天安装的是mysql数据库,所以选择有状态应用。

home/topic/2021/0901/11/7a14a71cc4cda39e055a3a8b5e2d1744.png

Docker镜像

这个就是docker的镜像了。

可以用私有仓库镜像,也可以用公有仓库的镜像,福哥这里用的就是前面讲Dockerfile的时候创建的mysql5.7镜像。

home/topic/2022/0712/16/aef6ed556a247f068cc3e3d60bcb85ad.png

命名空间

选择是什么环境,这里福哥选择的是tfums-prod-db(生产环境)。

home/topic/2022/0614/15/2482aab1a22fa57308b9716a47579618.png

环境变量

这个就是docker的environment(-e)了。

福哥通过MYSQL_ROOT_PASSWORD变量设置了mysql的初始化的root账号的密码。

home/topic/2021/0901/10/9fcd9096311cfe44f07fcf21cc55dde9.png

主机调度

选择服务部署在那台主机上面,可以手动选择,也可以自动分配。

home/topic/2021/0930/10/8c71777da47f18e7f03738a0c23769fc.png

健康检查

这个就是health_check了,图形化设置真爽~~

home/topic/2021/0901/10/4807da7f4eb7a24234dd5dba1c52d735.png

数据卷

这个就是docker的volumes(-v)了。

福哥设置了一个数据卷,将mysql的数据目录/var/lib/mysql/映射到了主机上面的/data/docker.data/mysql/data/目录上面。

创建目录

首先需要在服务器上建立这个目录,然后设置所有者和分组。

因为mysql:5.7的镜像的mysql用户和mysql组的ID都是999,所以这里授权999.999即可。

mkdir -p /data/docker.data/mysql/data/
chown 999.999 /data/docker.data/mysql/data/

设置数据卷

home/topic/2021/0901/10/1adb5c1562b52807aebc137ce2a7bf33.png

安全/主机设置

CPU和内存

设置最低内存256M最高内存512M,设置CPU使用率25%(福哥的虚拟机是双核的,一个核心是1000,两个就是2000,那么25%就是500)。
home/topic/2021/0930/10/898ab1f90739b3339d45a732b00975a9.png

查看

列表

创建完服务回到服务列表,等部署完成了可以看到服务状态是浅绿色的激活状态。

home/topic/2022/0712/16/5ded266a5ad41a925379b8459060da18.png

详情

点击服务“mysql”进去可以看到服务详情,这里可以手动增加Pod或者减少Pod,还可以看到一些服务参数和状态。

home/topic/2022/0712/16/8065b8c04cf692f20f33e9ee5e28aaf6.png

Pods

下面有Pods列表,可以看到当前服务有哪些Pod,都是处于什么状态。

home/topic/2022/0712/16/d13ecc7765b6f6a6ab927e4a18a0010d.png

容器

点击一个Pod进去可以看到这个Pod后面的容器的运行状态。

home/topic/2022/0712/16/43ac295fed5864f958666498fa9a5318.png

管理

命令行

可以在服务列表里面服务的右侧的三个点里面选择“执行命令行”,进入终端模式。

home/topic/2021/0908/22/2af72af2353111c268321fc99c67a195.png

在终端模式下就可以像SSH那样去操作服务了。

home/topic/2021/0908/22/dcdf50e6879601b161ce1e1bd691c20b.png

总结

今天福哥带着同学们学习了使用rancher部署MySQL服务的方法。

因为这是福哥第一个通过rancher部署的服务,所以讲解的比较细致,后面再部署其他服务的时候就会讲的比较简单一些了,初学者童鞋们可以以这一篇教程为参考试试部署其他服务看看。