在Docker上安装和运行MySQL步骤
本文章只有操作步骤,没有原理解释,只是在学习当中提醒自己安装步骤。
第一步:从远程仓库拉取MySQL镜像
1.从远程仓库搜索mysql镜像
docker search mysql
2.pull拉取镜像
这里我选择的是mysql的5.7版本
docker pull mysql:5.7
3.查看mysql镜像有没有安装好
docker images
第二步:创建前的持久化文件(中文字符编码)相关配置
1.在宿主机里(也就是linux系统里)创建my.cnf文件(为了解决中文乱码问题),我把文件放在了/mysql路径下,这里你可以自由选择
mkdir -p /mysql/conf
2.cd进入你刚创建的文件夹中,这里我是/mysql/conf
cd /mysql/conf
3.创建my.cnf文件
vim my.cnf
4.进入后按a键开始输入,输入一下内容,输入完后esc退出编辑模式,输入 :wq 保存退出
[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
5.查看my.cnf是否创建成功
cat my.cnf
一定要注意文件内容是否完整
第三步:正式创建并运行容器实例(使用容器卷保证容器实例被删后数据仍然存在)
1.创建容器实例使用命令如下
docker run -d -p 3306:3306 --privileged=true \
-v /mysql/log:/var/log/mysql \
-v /mysql/data:/var/lib/mysql \
-v /mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 \
--name mysql1 mysql:5.7
- -p后面是端口号;–privileged=true用容器卷时最好加上它;/mysql/log是宿主机的目录,包括/mysql/data和/mysql/conf都是,你可以自主选择;后面的/var/log/mysql、/var/lib/mysql和/etc/mysql/conf.d是mysql容器里的默认文件目录,用来存储数据等相关配置和文件;MYSQL_ROOT_PASSWORD一定要大写,后面的123456是密码,你可以自己选择;mysql1是我对本个容器起的名字;mysql:5.7是上面安装的mysql镜像的mysql和版本号。
================================================================
这样就能实现mysql容器数据的持久化,即使容器被删除,之前数据库里的数据仍然还在宿主机你设置的那几个文件夹里
注意:/mysql/conf一定要是你上一步在宿主机里创建my.cnf文件的目录
2.查看容器是否创建并运行成功
docker ps
这里我起的容器名字为mysql1
第四步:进入mysql1容器查看数据库
1.输入命令进入容器
docker exec -it mysql1 /bin/bash
这里的mysql1是上步起的容器的名字
2.输入mysql的账号和密码进入mysql控制窗口,
mysql -uroot -p
3.最后在容器mysql里查看前面的中文utf8编码配置成功没
show variables like 'character%';
可以看到都为utf8,配置生效,这样就成功安装了mysql容器实例