在 Docker 中使用 mysql

简介

Docker在当下是一门非常火热的虚拟化技术,关于什么是 Docker,可以参考维基百科上面的定义。自 2013 年 3 月 13 日第一个版本发布以来,Docker 已经成为虚拟化技术中一颗闪耀的明星,如果你还不知道什么是 Docker 的话,作为 IT 人,你真的落伍了。

下面这段话是摘自《Docker — 从入门到实践》):

Docker 彻底释放了虚拟化的威力,极大提高了应用的运行效率,降低了云计算资源供应的成本,同时让应用的部署、测试和分发都变得前所未有的高效和轻松!

关于 Docker 的基础知识可以学习上面提到的这本书,也可以到 Docker 官网查阅相关材料。

本文主要介绍如何在 Docker 中使用 mysql。

安装 Docker

可以参考池建强的文章在 Mac 上跳舞的容器 — Docker。也可以到 Docker 官网下载安装(我的系统是 Mac OS)。

下载 mysql 镜像

使用下面的命令,可以下载到 mysql 镜像(首次需要下载,后续就不需要执行这个命令了)

docker pull mysql

启动 mysql 镜像

执行如下命令,可以启动一个 mysql 容器

docker run -d -p 127.0.0.1:3306:3306 –name mysql -v /Users/BeyondVincent/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=”111111” mysql:latest

上面命令 docker run 的参数解释如下:

-d(Detached)表示容器将以后台模式运行,所有I/O数据只能通过网络资源或者共享卷组来进行交互。

-p 127.0.0.1:3306:3306将主机(127.0.0.1)的端口 3306 映射到容器的端口 3306 中。这样访问主机中的 3306 端口就等于访问容器中的 3306 端口。

--name mysql给容器取名为 mysql,这样方便记忆。

-v /Users/BeyondVincent/docker/mysql/data:/var/lib/mysql 将本机的文件目录挂载到容器对应的目录(/var/lib/mysql)中。这样可以通过数据卷实现容器中数据的持久化。

-e MYSQL_ROOT_PASSWORD="111111"-e 表示设置环境变量,此处设置了 mysql root 用户的初始密码为 111111。

mysql:latest表示使用 mysql 为 latest 启动一个容器。

执行完上面的命令,就完成了 mysql 在 Docker 中的虚拟化。此时我们可以利用 mysql 的客户端工具连接到这个 Docker 中的 mysql上。连接配置信息如下:

Hostname127.0.0.1

Port3306

Usernameroot

Password111111

当我们不需要使用这个 mysql 容器时,只需要停掉该容器即可,对主机不会产生任何配置上的影响,非常方便。

在上面的介绍中,我们主要做了 3 件事:第一是 mysql 镜像的下载;第二是 mysql 容器的启动;第三是 利用数据卷实现 mysql 的持久化。

小结

利用 Docker 进行虚拟化,从体验上来说,不用再像以前那样,为了使用 mysql,需要在本机安装 mysql 服务,可能还需要先下载安装好相应的依赖。现在只需要利用镜像,启动一个容器,立马就可以展开业务工作,而不必把大量枯燥乏味的时间浪费在环境的配置上,另外也可以确保使用环境的一致性,避免出现 在我电脑上是正确的这一类的问题。

对于开发和运维来说,现在已经真正步入了容器时代,我们何不拥抱这个时代的给我们带来的福利呢?