docker环境部署mysql
参考文档
部署步骤
1. 拉取镜像
这里我拉取了tag为5.7的镜像
docker pull mysql:5.7
2. 创建需要映射的目录
因为需要自定义mysql的配置,所以需要一个配置目录;
因为需要将mysql生成的数据挂载到本地,所以需要一个数据目录;
# 创建mysql 数据目录
mkdir -p /root/mysql/data
# 创建配置文件
touch /root/mysql/my.cnf
3. 编辑配置文件
/root/mysql/my.cnf
[mysqld]
explicit_defaults_for_timestamp=true
character-set-server=utf8
collation-server=utf8_unicode_ci
init_connect='SET NAMES utf8;'
4. 启动
docker run --name mysql57 -p 3306:3306 -v /root/mysql/my.cnf:/etc/my.cnf:ro -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1234asdfQ -d mysql:5.7
5. 检测是否启动成功
docker exet -it mysql57 /bin/bash
mysql -uroot -p
上述过程简化成shell自动化脚本
#! /bin/bash
docker pull mysql:5.7
mkdir -p /root/mysql/data
touch /root/mysql/my.cnf
(
cat <<EOF
[mysqld]
explicit_defaults_for_timestamp=true
character-set-server=utf8
collation-server=utf8_unicode_ci
init_connect='SET NAMES utf8;'
EOF
) > /root/mysql/my.cnf
docker stop mysql57
docker rm mysql57
docker run --name mysql57 -p 3306:3306 -v /root/mysql/my.cnf:/etc/my.cnf:ro -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1234asdfQ -d mysql:5.7
不积跬步,无以至千里。