1、拉取MySQL镜像
docker pull mysql:5.7
2、运行容器
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=12345678 -d mysql:5.7 # -e后面是设置MySQL密码
3、创建目录保存Mysql 的数据、配置、日志,这样删除容器时,数据也不会丢失
mkdir -p /docker/mysql && cd /docker/mysql
mkdir data log conf
4、在 conf 目录中新建 my.cnf 文件,作为 Mysql 的配置文件
[mysqld]
datadir=/var/lib/mysql
#(默认不是中国时区,使用的时候被坑过)
default-time_zone = '+8:00'
log-error=/var/log/mysql/error.log
5、重建容器
1、docker stop mysql && docker rm mysql
2、docker run --name mysql \
--restart=always \( Docker 重启时容器也跟随启动)
--privileged=true \(Docker 为容器内的 root 用户赋予真正的 root 权限,不然会提示 log 目录权限不足)
-p 3306:3306 \
-v /docker/mysql/conf:/etc/mysql/conf.d \(将配置目录挂载到容器内的配置目录)
-v /docker/mysql/data:/var/lib/mysql \(将数据存储目录挂载到容器内的出局存储目录)
-v /docker/mysql/log:/var/log/mysql \(将日志目录挂载到容器内的日志目录)
-e MYSQL_ROOT_PASSWORD=12345678 \
-d mysql:5.7
6、设置允许远程访问
1、docker exec -it mysql bash
2、mysql -u root -p
3、ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '12345678';
4、FLUSH PRIVILEGES;