Docker下安装Redis并持久化设置
镜像下载
拉取镜像
拉取最新版本镜像
docker pull redis; |
拉取指定版本镜像
docker pull redis:6.2.0; |
已拉取镜像
docker images; |
+++ 获取指定版本TAG镜像
hub.docker.com


+++
创建实例并启动
创建配置文件目录
mkdir -p /home/docker/redis/conf |
按redis版本下载对应redis.conf配置文件
https://redis.io/docs/management/config/ |

修改配置
vi /home/docker/redis/conf/redis.conf |
大坑注意:
daemonize no #不要修改,否则启动失败且无日志可查
推荐修改配置
#bind 127.0.0.1 -::1 |
- #bind 注释,解除本地连接限制
- protected-mode 保护模式,限制为本地访问,修改后解除保护模式
- requirepass 设置访问密码
- appendonly 开启持久化
持久化配置参数
- appendfilename “appendonly.aof” #生成文件名称 (默认)
- appendfsync everysec #日志追加频率-每秒 (默认)
启动容器
docker run -d \ |
移除容器
docker rm 名称or镜像id; |
实例启动成功
命令查看
docker ps ; #查看成功运行的容器 |

错误记录
错误01
解决方案:
docker 报错 /usr/bin/docker-current: Error response from daemon: driver failed programming external
解决命令:
#重启docker进程 |
错误信息:
/usr/bin/docker-current: Error response from daemon: driver failed programming external connectivity on endpoint redis (72144e08d14644cf8b86282112928608afcbfa1feff8ab1450a784e2c504ab2c): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 6379 -j DNAT --to-destination 172.17.0.2:6379 ! -i docker0: iptables: No chain/target/match by that name. |

问题原因(我确实有关闭firewall进程这一步操作):
错误02
redis.conf文件要与redis的版本一致,如果下载不对应的配置文件时,部分属性会报错。
>>> 'repl-diskless-sync-max-replicas 0' |
docker下查看容器的redis版本号信息
docker exec -it 容器名称 redis-server -v |
打印如下信息:
Redis server v=6.2.6 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=b61f37314a089f19
指定redis版本配置文件下载:
官方地址:https://redis.io/topics/config/
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Think Note!