一、背景

由于现在大部分的应用都是运行在云服务器上的,而现在大多数文章都是主要写如何在服务器上使用docker去运行mysql,比较少有介绍云服务器上的。再加上现在k8s比较火爆,而云厂商大多数都提供了k8s 集群服务且master免费,我们只需要使用就行了,更深一级的运维的事情就交给云厂商处理吧。但是建议开发的同学,还是要去手动部署一下k8s集群或只有单节点的也行,做一个基础的了解。这样用云会更加随心应手。

二、简要说明

本篇文章主要介绍如何在docker中安装mysql,并将路径挂载到服务器的目录中,在对其运行有一些 了解后。

再基于腾讯云的集群服务去创建mysql服务,并将实现上面的将路径挂载的功能。

三、具体步骤

1.首先创建相关的目录,用于映射,这里我创建了

/mysql/data用于映射数据目录

/mysql/config用于映射配置文件

b605c5c52b79b11837c9bca5da3296b9.png

2.我们先进行一次普通的docker安装

docker pull mysql:lastest

先以普通的方式运行一次mysql不进行映射路径操作,并设置root密码:

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

进入跑起来的容器

docker exec -it容器id /bin/bash

运行:mysql --verbose --help|grep -A 1 ‘Default options‘ 查看Mysql的配置路径:

23ae2d7c20e7f7badcffa942afa27d69.png

从上图可以看出, 服务器首先会读取/etc/my.cnf文件,如果发现该文件不存在,再依次尝试从后面的几个路径进行读取。由于/etc/my.cnf是不存在的因此会读取中间的路径,

因此我这里打算把整个/etc/mysql的路劲都映射出去。

输入cat /etc/mysql/my.cnf 查看配置:如下图

d9ab4dad5f50c372bd3f8530656b730e.png

我们可以看到datadir = /var/lib/mysql,因此需要把此路径映射到外面去。

3.由于我本机没有con.f之类的文件,所以我把容器中的文件拷贝出来。

docker cp容器id:/etc/mysql /mysql/config

a37181d44585374be9d208d9fb2f1eaa.png

如上图所示:

4.关闭容器,并重新以映射路径的方式运行docker命令

docker stop容器id

docker rm容器id

570c9f5e90c6e2b415a9184cee91bd40.png

docker run --name mysql -p 3306:3306 -v /mysql/data:/var/lib/mysql -v /mysql/config/mysql:/etc/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

0249d4172930d4a2848871df5db86a45.png

docker ps

5d9a7c62c5d452bd869f7f5428382c7d.png

如上图,docker中的mysql运行成功,并将配置与数据挂载到了服务器的硬盘中。

4.现在我们来试一下如何在腾讯云的集群中配置并挂载到服务器路径中。

首先创建好自己的集群,也可以把之前的服务器加入集群中,

Deployment----》新建,以下则相当于实现了上面的docker run的命令,后再以nodeport输出到服务器的端口实现访问

0c218f1f9ea604faafc8c371970f0777.png

aded6d751549eaf5bad184361976a91d.png

f1a6f6c090f01706ba5898f6cda1e233.png

321e4bb80232c29fdb60068a8a1d492d.png

ee8c4131272f24f2edb71164134e2d79.png

5d6f074ab47066033f7873f0b014e53d.png

原文:https://www.cnblogs.com/twoBcoder/p/12725017.html

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐