在Docker中快速搭建MySQL服务
Docker是一种容器化技术的落地。简而言之,就是我们可以在Docker中创建若干容器,每个容器都相当于一个虚拟机。之前甚至听说有的人在Docker中搞了个MacOS系统,也真是把它玩出花样来了。最近想试着亲手搭建MySQL的主从复制模型,以及一些高可用方案,在物理机器太贵,且不想为了练手浪费银子(其实就是穷)的前提下,Docker便是很好的一个选择。
步骤总览
在Docker中搭建一个MySQL服务步骤非常简单,网速、电脑性能不差的情况下几分钟就可以运行起来。大体上分为3个步骤:
- 拉取镜像
- 创建、启动容器
- 进入容器
拉取镜像
Docker提供大量的可用镜像以满足各种场景需求。MySQL作为使用市场占有率很高的一种数据库,是有Docker官方镜像的。因此只需要一条命令就可以获取我们需要的镜像:
docker pull mysql
然后就可以看到这样的界面:
上图是所有命令跑完之后的命令行。在不指定版本的情况下,默认下载最新的镜像,即命令行中提到的:
Using default tag: latest
如果我们需要安装特定的版本的话,只需要在后面加上版本号即可。例如我们想拉取的是5.7版本的数据,则对应的命令就是:
docker pull mysql:5.7
创建、启动容器
拉取完镜像之后我们就可以创建一个运行了MySQL的容器了。如果担心自己的镜像有无下载成功,可以通过docker images
命令查看一下自己手里都有哪些镜像。
创建容器也只需要一行代码即可,非常方便。创建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 exec -it mysql_master bash
即可进入该容器的命令行。若想要连接数据库,命令与平时使用数据库无异:
mysql -u root -p
运行效果如下图所示:
这样一个数据库容器就创建完了。