1、安装Docker
保证yum最新,执行命令,下载docker。安装参考:菜鸟教程
$ sudo yum -y install docker-io
启动 Docker 后台服务
$ sudo service docker start
查询一下mysql的镜像
$ sudo docker search mysql
下载镜像,选择的第一个
$ sudo docker pull docker.io/mysql:5.7.18
2、设置Mysql
设置外挂目录
mysql的外置data目录为 /opt/mysql_data_docker/data/mysql/data.
mysql的配置文件为 /opt/mysql_data_docker/data/mysql/conf/my.cnf
设置挂载本地路径,mysql的data要放到docker容器的外面。这样数据存在硬盘上,备份切换只需要备份文件夹即可
$ sudo mkdir -p /opt/mysql_data_docker/data/mysql/logs /opt/mysql_data_docker/data/mysql/conf /opt/mysql_data_docker/data/mysql/data
创建my.cnf文件,替换掉 镜像中默认的my.cnf, 添加 lower_case_table_names=1 ,使得mysql大小写不敏感
$ cd /opt/mysql_data_docker/data/mysql/conf
$ vi my.cnf
# 删除所有内容,并输入如下内容,适用mysql5.7.18版本
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
[mysql]
default-character-set = utf8
[mysql.server]
default-character-set = utf8
[mysqld_safe]
default-character-set = utf8
[client]
default-character-set = utf8
[mysqld]
lower_case_table_names=1
character_set_server=utf8
skip-name-resolve
init_connect='SET NAMES utf8'
创建mysql的容器,并映射 本地端口3306 访问容器的3306 。
如果是运维,只需要执行此步骤,修改name即可创建新的mysql容器
$ sudo docker run --name mysql_new -p 3306:3306 -v /opt/mysql_data_docker/data/mysql/data:/var/lib/mysql -v /opt/mysql_data_docker/data/mysql/conf/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=1234 -d docker.io/mysql:5.7.18
查看运行的容器,具体可查看docker的命令。
$ sudo docker ps
进入容器,(相当于进入运行的虚拟机中)-it 后面跟id 上图中 2052181c9e17 就是id,这里用简写20即可
$ sudo docker exec -it 20 /bin/bash
3、进入mysql
### 创建数据库
$ mysql -uroot -p1234
$ CREATE DATABASE dbname
### 使用数据库
$ use dbname;
4、问题:
1、为啥要映射配置文件?
容器内 改变 配置文件,重启后,会还原,他只是一个容器,你不能改变容器内的东西。所以需要映射进去。
2、为啥要把 数据库的文件 映射到 服务器上?
一样的原因,重启会还原。所以要把保存的数据放到 不还原的地方。