Docker容器案例:应用 Mysql

时间:2021-01-30 23:19:42
原创 杜亦舒
 

前阶段体验 Mysql 的新版本 5.7.13,由于机器里已经有 Mysql了,再安装另一个版本会有一些麻烦,为了简单,便使用 Docker 容器来安装

可能有人会认为没必要,在一台机器安装多个 Mysql 也没那么复杂,的确,单纯实现这个需求的话没问题,但其实这是一个普遍性的需求

例如 JDK 出新版本了、Redis 出新版本了、听说一个新的东西不错…… 都需要体验一下,机器数量有限,如果都安装到一台机器中的话,有很大概率会出现莫名其妙的问题,非常难维护

使用虚拟机可以解决这类问题,但是虚拟机很重,安装费时,系统资源占用非常多

Docker 容器就是非常好的选择,可以像虚机那样完全和宿主机隔离,而且安装启动非常快,资源占用少,一台机器中可以运行多个容器

例如,服务器中已经安装了 Redis 2.8 和 Mysql 5.6,现在想测试一下各自的新版本,就可以在Docker容器中安装,他们各自独立,不会互相影响

Docker容器案例:应用 Mysql

下面看一下在 Docker 中安装和使用 Mysql 的方式,为了便于理解,会类比虚机的概念

注:介绍的是整体思路,不是详细的安装步骤

(1)安装 Docker 环境

在 Windows、Linux、Mac 下都有相应的安装程序

Docker容器案例:应用 Mysql

Docker容器案例:应用 Mysql

就像在自己的机器中安装 VirtualBox

(2)获取一个镜像

例如从镜像仓库获取一个 Ubuntu 的镜像

docker pull ubuntu

Docker容器案例:应用 Mysql

Docker容器案例:应用 Mysql

就像在 VirtualBox 中安装了一个 ubuntu linux 系统

(3)启动容器

可以理解为在 VirtualBox 中把 ubuntu 运行起来

为了便于后面在主机中连接容器内的 Mysql,启动容器时可以指定映射端口,例如主机的 3307端口映射到容器内的3306端口

Docker容器案例:应用 Mysql

Docker容器案例:应用 Mysql

容器启动后,就可以进入 ubuntu 的 shell,进行正常操作,例如

[root@8f6f3cad2 /]#

(4)把Mysql安装包拷贝到容器中

在主机中下载好 Mysql 5.7.13 的安装包,然后通过 Docker 的拷贝命令将其放到容器内部

Docker容器案例:应用 Mysql

 

(5)在容器中安装运行 Mysql

在 ubuntu shell 下正常执行 Mysql 的安装操作,安装完成后,运行 Mysql

然后添加一个可以远程访问的用户,例如 test,密码 111111

(6)在主机中连接 Mysql

在主机中使用 Mysql 的客户端进行连接,连接信息:

Host - 分配给Docker的IP(可通过 Docker命令获得)

Username - test

Password - 111111

Port - 3307

这样,一个完全独立的 Mysql 就安装完了,这只是 Docker 的一个简单应用场景,Docker 非常实用,现在的应用范围已经相当广泛,以后会介绍更多的用法和案例