在Docker中快速搭建MySQL服务

Docker是一种容器化技术的落地。简而言之,就是我们可以在Docker中创建若干容器,每个容器都相当于一个虚拟机。之前甚至听说有的人在Docker中搞了个MacOS系统,也真是把它玩出花样来了。最近想试着亲手搭建MySQL的主从复制模型,以及一些高可用方案,在物理机器太贵,且不想为了练手浪费银子(其实就是穷)的前提下,Docker便是很好的一个选择。

步骤总览

在Docker中搭建一个MySQL服务步骤非常简单,网速、电脑性能不差的情况下几分钟就可以运行起来。大体上分为3个步骤:

  1. 拉取镜像
  2. 创建、启动容器
  3. 进入容器

拉取镜像

Docker提供大量的可用镜像以满足各种场景需求。MySQL作为使用市场占有率很高的一种数据库,是有Docker官方镜像的。因此只需要一条命令就可以获取我们需要的镜像:

docker pull mysql 然后就可以看到这样的界面:

docker 运行mysql命令 docker运行mysql性能_mysql


上图是所有命令跑完之后的命令行。在不指定版本的情况下,默认下载最新的镜像,即命令行中提到的:

Using default tag: latest

如果我们需要安装特定的版本的话,只需要在后面加上版本号即可。例如我们想拉取的是5.7版本的数据,则对应的命令就是:

docker pull mysql:5.7

创建、启动容器

拉取完镜像之后我们就可以创建一个运行了MySQL的容器了。如果担心自己的镜像有无下载成功,可以通过docker images命令查看一下自己手里都有哪些镜像。

docker 运行mysql命令 docker运行mysql性能_Docker_02


创建容器也只需要一行代码即可,非常方便。创建MySQL容器的命令如下:

docker run -d -p 13306:3306 -e MYSQL_ROOT_PASSWORD=********** --name mysql_master mysql 在上述命令中,13306:3306是这个容器对应的端口。MySQL默认的端口是3306,因为我本地已经安装了数据库服务,即3306端口已经是被占用的状态,因此为了避免端口冲突,我将其改为了13306端口。MYSQL_ROOT_PASSOWRD指定了数据库的root密码,–name参数后面设置的是这个容器的名字。因为我打算把它作为主节点,所以起了mysql_master的名字。命令行最后的mysql则指明了适用哪个镜像。我们下载的镜像名字正是mysql。这个命令的运行效果如下图:

docker 运行mysql命令 docker运行mysql性能_mysql_03


这样一个容器就创建好了。

进入容器

容器创建好了之后通过下面的命令就可以进入容器中:

docker exec -it mysql_master bash 即可进入该容器的命令行。若想要连接数据库,命令与平时使用数据库无异:

mysql -u root -p

运行效果如下图所示:

docker 运行mysql命令 docker运行mysql性能_docker 运行mysql命令_04


这样一个数据库容器就创建完了。