1. 创建相关目录
如果不将数据挂载到宿主机,在容器被删除之后,数据会消失不见,为了避免这种事情的发生,一般会使用数据卷挂载出来。
#在宿主机执行一下命令,创建相关数据挂载
mkdir -p /var/mysql/log
mkdir -p /var/mysql/data
mkdir -p /etc/mysql/conf
防止mysql出现中文乱码,通常会进行配置,这里采用直接将utf8映射到容器里面即可
vim /etc/mysql/conf/my.cnf
#在my.cnf中将下面配置放进去
[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
2. 启动mysql
本地不存在mysql:5.7时会自己先将镜像拉取到本地,然后再启动容器。
docker run -d -p 3306:3306 \
--privileged=true \
-v /var/mysql/log:/var/log/mysql \
-v /var/mysql/data:/var/lib/mysql \
-v /etc/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=yang1yua \
--name mysql mysql:5.7
参数说明:
- –privileged=true:防止没有权限进行数据卷映射
- -v 宿主机目录:容器目录
- -e 环境变量 这里设置mysql的密码为yang1yua
- –name 给容器一个名字,方便后续操作
3. 连接mysql
3.1 使用navicat连接
输入对应的IP,用户名默认为root,password为自己设置的环境变量
3.2 进入容器
docker exec -it mysql bash
mysql -uroot -p
#输入密码之后就能进入mysql