1.拉取mysql
docker pull mysql:8.0.16
2.创建挂载目录
mkdir /home/mysql/config/conf.d
mkdir /home/mysql/data
mkdir /home/mysql/log
3.创建my.cnf 并添加内容
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Custom config should go here
!includedir /etc/mysql/conf.d/
4 运行docker 命令
docker run --name mysql
--restart=always
-p 38806:3306
-v /home/docker/mysql/config/conf.d/my.cnf:/etc/mysql/my.cnf
-v /home/docker/mysql/log:/logs
-v /home/docker/mysql/data/mysql:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=123456
-d mysql:8.0.16
5 解释一番
docker run --name mysql \ -> 指定容器名称
--restart=always \ -> 开机启动容器,容器异常自动重启
-p 38806:3306 \ -> 绑定宿主机端口(阿里云端口要开放)
-v /home/docker/mysql/config/conf.d/my.cnf:/etc/mysql/my.cnf \ -> 映射配置文件
-v /home/docker/mysql/data/mysql:/var/lib/mysql \ -> 映射数据
-v /home/docker/mysql/log:/logs -> 映射日志
-e MYSQL_ROOT_PASSWORD=123456 \ -> 写入配置root密码
-d mysql:8.0.16 -> 镜像名称
6 启动成功 进入容器
docker exec -it mysql bash
mysql -uroot -p
alter user 'root'@'%' identified by '123456' password expire never;
alter user 'root'@'%' identified with mysql_native_password by '123456';
flush privileges;
7 连接成功