Docker安装升级redis,并设置持久化
一、使用命令拉取最新的redis镜像
// 默认拉取最新版
docker pull redis// 拉取特定版本
docker pull redis:7.0.15
如果镜像拉取报错,执行以下操作。否则跳过
Error response from daemon: Get "https://registry-1.docker.io/v2/ ": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
1、备份原文件
sudo mv /etc/docker/daemon.json /etc/docker/daemon.json.bak
2、设置源
sudo tee /etc/docker/daemon.json <<EOF
{"registry-mirrors": ["https://docker.1ms.run","https://docker.1panel.live/"]
}
EOF
3、重新加载配置
sudo systemctl daemon-reload
4、重启docker
sudo systemctl restart docker
5、此时再去pull就可以了
二、创建宿主机目录存放配置和数据
mkdir -p /opt/docker/redis/{conf,data}
三、下载 Redis 配置文件并修改关键参数
wget https://raw.githubusercontent.com/redis/redis/7.0.15/redis.conf -O /opt/docker/redis/conf/redis.conf
四、修改配置文件
# 注释掉 bind 127.0.0.1(允许远程连接)
# bind 127.0.0.1
# 关闭保护模式
protected-mode no
# 禁用守护进程模式(与 Docker -d 冲突)
daemonize no
# 设置密码
requirepass yourpassword
# 开启持久化
appendonly yes
五、启动 Redis 容器
docker run -d \--name redis7.0.15 \--restart=always \--privileged=true \-p 6379:6379 \-v /opt/docker/redis/conf/redis.conf:/etc/redis/redis.conf \-v /opt/docker/redis/data:/data \redis:7.0.15 \redis-server /etc/redis/redis.conf
六、验证容器状态
docker ps -a | grep redis7.0.15
七、如果发现重启docker,redis不会重启
docker update redis7.0.15 --restart=always