本文章只有操作步骤,没有原理解释,只是在学习当中提醒自己安装步骤。
第一步:从远程仓库拉取MySQL镜像
从远程仓库搜索mysql镜像
docker search mysql
pull拉取镜像
这里我选择的是mysql的5.7版本
docker pull mysql:5.7
查看mysql镜像有没有安装好
docker images
第二步:创建前的持久化文件(中文字符编码)相关配置
在宿主机里(也就是linux系统里)创建my.cnf文件(为了解决中文乱码问题),我把文件放在了/mysql路径下,这里你可以自由选择
mkdir -p /mysql/conf
cd进入你刚创建的文件夹中,这里我是/mysql/conf
cd /mysql/conf
创建my.cnf文件
vim my.cnf
进入后按a键开始输入,输入一下内容,输入完后esc退出编辑模式,输入 :wq 保存退出
[client]default_character_set=utf8[mysqld]collation_server = utf8_general_cicharacter_set_server = utf8
查看my.cnf是否创建成功
cat my.cnf
一定要注意文件内容是否完整
第三步:正式创建并运行容器实例(使用容器卷保证容器实例被删后数据仍然存在)
创建容器实例使用命令如下
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文件的目录
查看容器是否创建并运行成功
docker ps
这里我起的容器名字为mysql1
第四步:进入mysql1容器查看数据库
输入命令进入容器
docker exec -it mysql1 /bin/bash
这里的mysql1是上步起的容器的名字
输入mysql的账号和密码进入mysql控制窗口,
mysql -uroot -p
最后在容器mysql里查看前面的中文utf8编码配置成功没
show variables like 'character%';
可以看到都为utf8,配置生效,这样就成功安装了mysql容器实例
来源地址:https://blog.csdn.net/weixin_43687024/article/details/130422103