菜鸟教程
一、拉取镜像
docker pull redis:latest
查看镜像
docker images
二、创建redis配置文件
1、创建目录
mkdir /data/redis
2、进入目录
cd /data/redis
3、创建redis配置文件
touch redis.conf
4、查看创建成功没
ls
5、写入内容,redis官网可以找
vi redis.conf # 写入信息
:wq # 保存退出
# Redis服务器配置
# 绑定IP地址
#解除本地限制 注释bind 127.0.0.1
#bind 127.0.0.1
# 服务器端口号
port 6379
#配置密码,不要可以删掉
# requirepass syf133618
#这个配置不要会和docker -d 命令 冲突
# 服务器运行模式,Redis以守护进程方式运行,默认为no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败,如果后面redis启动失败,就将这个注释掉
daemonize no
#当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定(自定义)
#pidfile /data/dockerData/redis/run/redis6379.pid
#默认为no,redis持久化,可以改为yes
appendonly yes#当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能
timeout 60
# 服务器系统默认配置参数影响 Redis 的应用
maxclients 10000
tcp-keepalive 300
#指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合(分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改)
save 900 1
save 300 10
save 60 10000
# 按需求调整 Redis 线程数
tcp-backlog 511# 设置数据库数量,这里设置为16个数据库
databases 16# 启用 AOF, AOF常规配置
appendonly yes
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb# 慢查询阈值
slowlog-log-slower-than 10000
slowlog-max-len 128
# 是否记录系统日志,默认为yes
syslog-enabled yes
#指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose
loglevel notice
# 日志输出文件,默认为stdout,也可以指定文件路径
logfile stdout
# 日志文件
#logfile /var/log/redis/redis-server.log# 系统内存调优参数
# 按需求设置
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
三、启动
docker run --restart=always -p 6379:6379 --name redis -v /data/redis/redis.conf:/etc/redis/redis.conf -v /data/redis/data:/data:rw --privileged=true -d redis redis-server /etc/redis/redis.conf --appendonly yes
# 统一到portainer_network局域网中
docker run --restart=always --network portainer_network -p 6379:6379 --name redis -v /data/redis/redis.conf:/etc/redis/redis.conf -v /data/redis/data:/data:rw --privileged=true -d redis redis-server /etc/redis/redis.conf --appendonly yes
参数解释说明:
-p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。
--name myredis 指定该容器名称,查看和进行操作都比较方便。
-v 挂载配置文件目录,规则与端口映射相同。
为什么需要挂载目录:个人认为docker是个沙箱隔离级别的容器,这个是它的特点及安全机制,不能随便访问外部(主机)资源目录,所以需要这个挂载目录机制。
例: -v /data/redis/redis.conf:/etc/redis/redis.conf 容器 /etc/redis/redis.conf 配置文件 映射宿主机 /data/redis/redis.conf。 会将宿主机的配置文件复制到docker中
重要: 配置文件映射,docker镜像redis 默认无配置文件。
-v 挂在数据卷
/data/redis/data:/data:rw
映射数据目录 rw 为读写
-d redis 表示后台启动redis
redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/data/redis/redis.conf
重要: docker 镜像redis 默认 无配置文件启动
--appendonly yes 开启redis 持久化
验证:
进入redis容器
docker exec -it redis bash
redis-cli
!问题:
如果一直启动不了,可能是redis版本太高,但是redis.conf配置文件的版本太低,可以去redis官网下配置文件。
四、其他命令
1、docker删除redis容器
查看所有在运行的容器:docker ps -a
关闭容器:docker stop <容器名>
删除容器:docker rm <容器名>
2、docker删除redis镜像
查看全部镜像 命令:docker images
删除镜像 命令 :docker rmi <容器 id>
参考: