使用docker启动mysql服务 从安装docker开始手把手
视频手把手教学如何安装Docker,并利用Docker镜像快速部署、配置及运行MySQL数据库服务。
UP主: 程序员三木 · 时长: 8:38 · 🔗 B站原视频
标签: Docker · MySQL · 数据库 · 开发环境 · 容器化
为什么使用 Docker 安装数据库
大家好,今天我们来讲一下怎么用 Docker 来安装一个 MySQL 的服务。平时开发项目的时候需要安装数据库,可能会用到 MySQL、MongoDB 那种。每次都要从各个网站上去下载对应的安装包,安装好之后可能还要再配置环境变量,每次都很繁琐,而且比较占地方。有了 Docker 之后,安装就非常方便,也很容易管理。比如我们本地可以开多个数据库,这个项目开数据库一,另一个项目开数据库二,可以随时把这些数据库关闭,很适合用于开发。
下载与安装 Docker
首先大家可以登录官网去下载 Docker,直接进入官网首页就可以看到下载链接,它支持 Windows、Mac 和 Linux。下载安装完软件之后,就可以看到这里有一个图标,Windows 应该也有个对应的。运行之后,可以看到有一个可以操作的菜单,Windows 的右下角应该也有。我们可以通过这个来管理之后的容器,比方说想把它删了,可以通过命令删,也可以直接点击,也可以去执行它,很方便。运行之后,来到终端,输入 docker -v,就可以看到生成了一个 Docker 的版本号。这样我们的 Docker 就已经安装完成了。
下载 MySQL 镜像
接下来进入今天的正题,怎么去安装数据库。我们可以通过 docker pull mysql 来安装。回车之后,可以看到这边有个下载的内容。因为我已经安装过了,就不继续了。大家下载完成之后,可以通过 docker image -a 命令,看到这边有个 MySQL 的镜像。也可以在软件的 Image 界面看到,看到这个就代表镜像已经安装完成了。
运行 MySQL 容器与命令解析
接着我们可以通过 docker run 这条命令,让镜像跑起来。我解释一下这个命令的含义:首先 -p 代表设置端口号,它是 port 的缩写,做端口映射。因为一个是容器内暴露出来的端口,另一个是我们去访问它的端口,要做一层映射。MySQL 内部的端口是 3306,所以我们做一层映射,让容器外可以访问它的服务。--name 代表起一个 MySQL 名字,名字可以随便起。-e 代表设置环境变量,我们给它设置密码叫 123456。-d 代表后台运行,这服务在电脑上启动后,即使把终端关闭了,它还能一直运行,直到执行 stop 命令才会停止。
我们先把这个命令复制过来,回车,可以看到这边生成了一个唯一标识的值。通过 docker ps -a,可以看到有个 name 为“三木MYSQL”的服务。回到容器界面,同样可以发现这里启动了一个服务。这样 MySQL 服务就已经启动好了。
使用可视化工具连接数据库
我们现在去打开一个 SQL 的可视化工具,选择 MySQL。名字随便起,因为只是显示在这里用的。Host 是 localhost,端口写 3306,接着密码是 123456,点击 Save。可以看到这里就启动了这个东西,双击之后就可以进入 SQL 服务了。这样新创建的 MySQL 服务就已经连接好了。在这里我们就可以通过可视化工具来写一些 SQL 语句。
多容器管理与端口配置
同样,我们可以在这边把它停止。比如现在的“三木MYSQL”是用于项目一的服务,我们再去创建一个项目二的服务。把名称改成“三木MYSQL2”,需要注意的地方是,3306 端口刚才那个服务已经在用了,所以这边的端口要换一个,我们要通过另一个端口号去访问第二个服务。这样第二个服务就启动起来了。
同样通过可视化工具连接,端口填 3307,密码同样是 123456,就可以看到连接了两个服务。写项目一的时候用第一个数据库,项目二的时候用第二个,通过容器管理特别方便。假设现在不用了,就可以直接关掉(关的时候可能会有一点延迟)。下次要用的话,直接运行起来,再连接就可以了。用 Docker 来管理 MySQL 服务是非常方便的。
探索 Docker Hub 与其他服务镜像
Docker 除了能启动 MySQL,也可以启动开发需要的其他服务,比如 Redis 或者 MongoDB。程序开发需要的大部分服务,都可以从 Docker 里找到相应的镜像,下载下来直接执行就行了。
查找镜像可以到 Docker Hub,它其实类似于 GitHub。GitHub 是用来存储代码仓库的,Docker Hub 是用来存储镜像的仓库。进入 Docker Hub 页面就可以搜索,比如搜 MySQL,就会出来很多相关的结果。点击进来,它会告诉我们怎么去安装,或者去找 release 版本介绍。我们可以安装不同的版本,每个版本都有不同的 tag,直接复制对应的命令就可以下载安装。整体来说非常方便,一是方便管理,二是支持多版本共存,非常推荐大家去学习使用。