此篇文章主要讲解在docker环境中,如何使用自定义MySQL的配置文件,以及如何挂载MySQL的数据文件,来持久化MySQL的数据。
1 拉取MySQL镜像
拉取docker hup 官方仓库的mysql:5.7版本,可根据需要自行修改版本号:
docker pull mysql:5.7
2 MySQL配置
在本机系统中新建目录,用于保存mysql的配置、日志、数据库等,到时通过挂载mysq镜像数据卷到本机的方式,来实现mysql数据库、日志持久化的目的。
mkdir -p /home/mysql/{conf,logs,data/mysql}
在/home/mysql/conf文件夹中新建my.cnf文件
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
# 设置忽略大小写
lower_case_table_names=1
3 启动MySQL镜像
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /home/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /home/mysql/logs:/logs -v /home/mysql/data/mysql:/var/lib/mysql -d mysql:5.7
- -d 为保护容器进程,启动镜像后不关闭
- -p 3306:3306 指定虚拟机的3306端口映射到docker容器的3306端口,即可通过虚拟机IP加端口访问mysql数据库
- -e 指定启动时的参数
- -v 挂载数据卷
4 验证
若要验证mysql镜像的数据是否能够持久化,可通过虚拟机IP加3306端口访问mysql数据库,在此建立数据库及表文件。关闭mysql容器并重新执行步骤3的启动脚本,看是否还有上次建立的数据库及表文件。