拉取mysql镜像
执行命令docker pull mysql:5.7拉取mysql的镜像
执行docker images可以查看到mysql的镜像

启动容器
执行mysql容器启动命令
run -d -p 3310:3306 --privileged=true -v /usr/local/zl/tools/mysql_1/log:/var/log/mysql -v /usr/local/zl/tools/mysql_1/data:/var/lib/mysql -v /usr/local/zl/tools/mysql_1/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql_1 mysql:5.7
注意,可能由于权限原因docker无法自动在宿主机上创建目录,因此有时需要提前创建好/usr/local/zl/tools/mysql_1/data,/usr/local/zl/tools/mysql_1/log,/usr/local/zl/tools/mysql_1/conf目录
执行docker ps查看容器是否启动

创建my.cnf文件配置mysql
在/usr/local/zl/tools/mysql/conf目录下创建my.cnf通过容器卷同步给mysql实例,文件内容为
[client]
default_character_set=utf8
[mysqld]
collation_server=utf8_general_ci
character_set_server=utf8
重启mysql容器
执行docker restart 89887d418491,发现重启成功

进入容器查看mysql的字符集
执行命令: docker exec -it 89887d418491 /bin/bash 进入容器
执行命令:mysql -u root -p ,连接mysql
执行命令show variables like 'char%',查看数据库字符集为为了utf-8

测试
执行一下命令:
create database db1;
use db1;
create table t1(id int, name varchar(20));
insert into t1 values(1,"zhangsan");
select * from t1;

看到数据运行正常,至此搭建docker下搭建mysql成功
网友评论