一.mysql
1.下载mysql镜像
docker pull mysql:版本号
2.运行容器
注意设置密码
docker run -d \
--restart always \
-p 3306:3306 \
--privileged=true \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456 \
--name mysql \
mysql:版本号
容器内操作mysql
#进入容器
1.docker exec -it 容器名/容器id bash
#登录mysql
2.mysql -u root -p
3.解决中文乱码问题
在/app/mysql/conf
下新建 my.cnf
,通过容器卷同步给mysql实例
[client]
default-character-set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
重启mysql
docker restart mysql
二.redis
1.下载redis镜像
docker pull redis:版本号
2.运行并配置redis
1.宿主机创建目录/mydata/redis
2.在/mydata/redis
下创建文件redis.conf
,主要修改以下几项配置
# 开启密码验证(可选)
requirepass 123
# 允许redis外地连接,需要注释掉绑定的IP
# bind 127.0.0.1
# 关闭保护模式(可选)
protected-mode no
# 注释掉daemonize yes,或者配置成 daemonize no。因为该配置和 docker run中的 -d 参数冲突,会导致容器一直启动失败
daemonize no
# 开启redis数据持久化, (可选)
appendonly yes
以下是redis.conf的全部配置
#设置redis监听的端口,默认为6379
port 6379
# 设置Redis监听的网络接口的IP地址
# bind 127.0.0.1
# 设置Redis是否以守护进程方式运行
daemonize no
# 设置Redis的pid文件位置
pidfile /var/run/redis.pid
# 设置Redis数据库的数量,默认16个数据库(0...15)
databases 10
# 设置Redis日志级别
loglevel notice
# 设置Redis日志文件路径
logfile ""
# 设置数据持久化方式
# save <seconds> <changes>
# 指定在多长时间内,有多少次更新操作时,进行数据保存
save 900 1
save 300 10
save 60 10000
# 设置数据持久化的文件路径
dir ./
# 设置Redis是否在载入数据的时候使用压缩
rdbcompression yes
# 设置Redis的密码
requirepass 123456
# 设置连接超时时间
timeout 300
# 设置TCP连接是否为长连接,"yes"表示启用keepalive
tcp-keepalive 0
# 设置Redis的最大内存容量
# maxmemory <bytes>
# 设置内存淘汰策略
# allkeys-lru -> 当内存不足以容纳更多数据时,使用最近最少使用算法进行淘汰
# volatile-lru -> 当内存不足以容纳更多数据时,只对设置了过期时间的键进行最近最少使用算法进行淘汰
# allkeys-random -> 当内存不足以容纳更多数据时,随机淘汰键
# volatile-random -> 当内存不足以容纳更多数据时,只对设置了过期时间的键进行随机淘汰
# volatile-ttl -> 当内存不足以容纳更多数据时,只对设置了过期时间的键进行淘汰,优先淘汰TTL值较小的键
# maxmemory-policy noeviction
# 设置是否开启append only模式
appendonly no
# 设置AOF文件的更新频率
# appendfsync always
# appendfsync everysec
# appendfsync no
appendfsync everysec
# 设置AOF重写规则
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
# 设置Redis的最大连接数
# maxclients 128
# 设置是否启用虚拟内存机制
# vm-enabled no
# 设置虚拟内存文件路径
# vm-swap-file /tmp/redis.swap
# 设置虚拟内存的大小
# vm-max-memory 0
# 设置虚拟内存的页大小
# vm-page-size 32
# 设置虚拟内存的页数
# vm-pages 134217728
# 设置虚拟内存的缓冲区大小
# vm-max-threads 4
# 设置是否开启Lua脚本功能
# lua-time-limit 5000
# 设置Redis的最大内存用量上限,超过该值时
3.启动redis(因为要使用自定义的配置文件,所以需要指定容器运行的命令为redis-server 容器内配置文件路径
/etc/redis/redis.conf)
docker run -d\
--name myredis \
-p 6379:6379\
-v /mydata/redis/redis.conf:/etc/redis/redis.conf \
-v /mydata/redis/data:/data \
--restart always \
redis:版本号 \
redis-server /etc/redis/redis.conf
容器内操作redis
#进去容器
docker exec -it myredis bash
#启动redis
redis-cli
#如果设置了redis密码,你需要使用 -a 参数来提供密码
redis-cli -a your_redis_password