Docker里使用MySQL
Contents
[NOTE] Updated August 27, 2023. This article may have outdated content or subject matter.
本科前两年因为装软件搞的老电脑乌烟瘴气(主要是装了各种依赖以及混乱的文件管理),避开了装病毒软件的坑之外,太多软件只是一学期上课使用而已
,为此大动干戈在电脑上反反复复可能还会遇到依赖相关的问题(Windows在编程配置方面实在是永远的痛。。),介于暑假又接触到了docker里跑pgsql决定在这个学期的数据库课环境也用docker构建MySQL的镜像,一劳永逸。下面记录了从0到成功运行的过程。
运行环境
Windows10 - WSL2 - Ubuntu18.04
Windows10使用docker可以参考官方文档或者这份网上的简易版本。
docker中使用mysql
去docker hub下载源
(这里我选了比较新的一个version 5.7.35)
|
|
创建并启动mysql容器(设置端口才可以连接)
|
|
参数
run:运行docker镜像
–name:给容器取名叫mysql
-e:设置容器里的环境变量(这里置空了mysql的密码环境变量
-d:容器在后台运行
最后为依赖的镜像名字
为了在docker容器删除后依然保存所需要的数据可以再增加挂载参数。首先在本地新建一个~/sqldata
文件夹用来存放mysql的数据文件
|
|
参数
-v:将容器中的目录和宿主机中的目录做映射
我们只要把容器中mysql的数据目录映射到本地,将来就算这个容器被删除了,那么数据也还是在本地
查看容器
|
|
进入mysql容器
|
|
输入刚刚的PASSWORD进入数据库,而宿主机中的~/sqldata目录也有通过mysql创建的数据库
完成之后删除mysql这个容器
|
|
接着我们重新生成容器
|
|
检查原来存放于mysql中数据可以重新访问,启动docker速度还快。
补充
使用容器中的客户端去连接其他的mysql数据库(假设远程数据库ip:72.17.0.1)
|
|
通过MySQL执行sql文件
把宿主机下写好的sql文件用docker cp
拷贝过去。如
|
|
然后MySQL激活即可,mysql < src.sql
。
查看方式
|
|