Docker中运行MySQL5.7并挂载宿主机目录到镜像

文章目录

  • 拉取mysql镜像
  • 创建用于挂载的目录
  • 使用镜像创建容器
  • 命令解析
  • 进入容器
  • 问题
    • 表名区分大小写

拉取mysql镜像

docker pull mysql:5.7

创建用于挂载的目录

mkdir -p /data/mysql/logs /data/mysql/conf /data/mysql/data

使用镜像创建容器

#将容器中MySQL的3306端口映射到本地的3307端口,并设置登录密码为:123456
docker run --name mysql5.7 -p 3307:3306 -v /data/mysql/data:/var/lib/mysql -v /data/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

命令解析

--name:容器名
--p:映射宿主主机端口
-v:挂载宿主目录到容器目录
-e:设置环境变量,此处指定root密码
-d:后台运行容器

进入容器

docker start 容器ID
docker exec -it 容器名字 /bin/bash

[root@dc01 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
96a49c6e7235 mysql:5.7 "docker-entrypoint.s…" 4 weeks ago Up 2 minutes 0.0.0.0:3306->3306/tcp mysql5.7
fa56f865bd26 nginx:latest "nginx -g 'daemon of…" 4 weeks ago Up 16 minutes 0.0.0.0:80->80/tcp vigilant_swirles

[root@dc01 ~]# docker exec -it 96a49c6e7235 /bin/bash

root@96a49c6e7235:/# mysql -uroot -p123456

Docker中运行MySQL5.7并挂载宿主机目录到镜像_第1张图片

问题

首先按照上面安装完成否则目录无效

表名区分大小写

在宿主机上该目录下:/data/mysql/conf创建一个mysql.cnf
/data/mysql/conf/mysql.cnf添加如下内容

[mysqld]
lower_case_table_names=1

重启mysql

docker restart mysql5.7

你可能感兴趣的:(docker,mysql)