一、拉取mysql镜像
docker images 命令可以查看已有镜像
docker pull mysql:5.7
二、创建挂载文件夹并编辑配置文件
1.可以使用mkdir 来创建文件夹
/home/docker/mysql/conf
/home/docker/mysql/data
/home/docker/mysql/logs
2.在conf目录下创建my.cnf文件,并编辑配置
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
default-storage-engine=INNODB
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
default-time_zone = '+8:00'
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
lower_case_table_names=1
三、使用命令启动容器
代码如下(示例):
docker run --restart always -p 3306:3306 --network common-network --privileged=true --name common-mysql -v /opt/common/common-mysql/conf/my.cnf:/etc/my.cnf -v /opt/common/common-mysql/logs:/var/log/mysql -v /opt/common/common-mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password01! -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
#参数说明
-p 3306:3306 #将容器的3306端口映射到主机的3306端口(左边本地端口,右边容器的端口)
--privileged=true #设置mysql用户,否则外部不能使用root用户登录
--name mysql #容器别名
-v /opt/common/common-mysql/conf/my.cnf:/etc/my.cnf #将配置文件夹挂载到主机
-v /opt/common/common-mysql/logs:/var/log/mysql #将日志文件夹挂载到主机
-v /opt/common/common-mysql/data:/var/lib/mysql #将数据文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root #初始化root用户的密码
-d mysql:5.7 #以后台方式启动,以mysql:5.7镜像启动
--character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci #设置数据库默认编码
四、测试
进入mysql控制bash
docker exec -it mysql bash
--进行登录
mysql -uroot -p