一、mysql5.7
1.配置docker阿里源加速,重启docker
2.打开docker hub 查看mysql支持的版本
https://hub.docker.com/_/mysql?tab=tags&page=1&ordering=last_updated
其中有5.7版本
3.linux下载镜像
docker pull mysql:5.7
4.查看镜像
5.创建mysql容器实例并启动
docker run -p 3306:3306 --name mysql -v /mydata/myssql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/confi:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
8e7a345216fa1df598215bda2e38a033beabd0891e88c70093bc617c0e676ec1
表示容器已经启动
6、docker一些命令和解释
docker容器文件挂载与端口映射
docker run (启动容器,一个容器是一个独立的运行环境,比如一个mysql容器是一个小型的linux,里面有一个完整的mysql运行环境)
docker exec -it mysql /bin/bash
以linux用户访问了容器内部
查看容器内部结构,发现是一个完整的linux目录,所以mysql被安装在了容器里的这个linux目录中
linux的3306映射在docker容器的3306端口
-p 3306:3306l
在linux环境下创建一个/mydata/mysql/log文件夹
映射docker容器中的var/log/mysql文件夹,进行挂载
挂载:只要在容器内部的var/log/mysql产生的日志,在/mydata/mysql/log文件夹中可以看见(像快捷方式)
-v /mydata/mysql/log:/var/log/mysql
挂载数据文件,也就是说备份数据时候可以到/mydata/mysql/data下备份
-v /mydata/mysql/data:/var/lib/mysql
挂载配置文件,修改配置文件只要在v /mydata/mysql/confi下修改
v /mydata/mysql/confi:/etc/mysql
-e:改变mysql的一些参数
-e MYSQL_ROOT_PASSWORD=root
退出容器:exit
7、修改mysql的配置文件
①打开(自己的)挂载的配置文件的目录(我的是): cd /mydata/mysql/confi
②创建配置文件并修改:vi my.conf
[client]
default-character-set=utf-8
[mysql]
default-character-set=utf-8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
③保存退出
④重启docker的mysql容器,并进入mysql容器内部查看配置文件是否修改
⑤退出容器exit
二、redis安装
1、下载最新版本的redisdocker pull redis
2、创建redis在linux中要挂载的目录结构
3、配置并启动redis容器
docker run -p 6379:6379 --name redis -v/mydata/redis/data:/data -v/mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf
4、检测docker中的的容器
redis启动成功
5、开启防火墙6379端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
success
6、进入redis的客户端(但是无法持久化)
7、持久化挂载的配置文件修改并保存
8、重启redis,打开redis客户端,在redis中写入数据
docker restart redis
9、重启redis,打开客户端,查看刚才写入的数据是否存在