sudo docker pull redis:6.2
#修改启动默认配置(从上至下依次):
bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问
protected-mode no #默认yes,开启保护模式,限制为本地访问
#默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败
daemonize no
appendonly yes #redis持久化(可选)
requirepass '' #安全访问密码
获取指定版本的Redis镜像
sudo docker pull redis:6.2
或者在dockerhub上,获取官方最新版本
优先启动容器,将容器内的redis.conf文件,复制到宿主机上,便于后期进行映射和修改配置
#先启动redis容器
docker run -p 6371:6379 --name redis 镜像id
redis-server /etc/redis/redis.conf
#查询是否启动成功
docker ps
#在宿主机新建redis.conf
mkdir -p /data/myredis
cd /data/myredis
touch redis.conf
拷贝容器内的redis.conf覆盖本地空的redis配置文件
#复制redis.conf配置文件
docker cp 容器id:/etc/redis/redis.conf /data/myredis/redis.conf
关闭删除容器
docker stop 容器id
docker rm 容器id
修改本地redis.conf文件中的常用配置
#修改启动默认配置(从上至下依次):
bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问
protected-mode no #默认yes,开启保护模式,限制为本地访问
#默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败
daemonize no
appendonly yes #redis持久化(可选)
requirepass '' #安全访问密码
修改配置文件后,再次启动容器,并查看启动日志
docker run --restart=always --log-opt max-size=100m --log-opt max-file=2
-p 6371:6379 --name redis
-v /data/docker/redis/redis.conf:/etc/redis/redis.conf
-v /data/docker/redis/data:/data -d 镜像id redis-server /etc/redis/redis.conf
--appendonly yes
#以上命令输入后,会返回容器id,使用此容器id查看容器的启动日志
docker logs -f 容器id
遇到的坑
- 早期的 Docker Redis 在容器中的配置文件,在一个专门的、特定的目录下,但现在没有了。从 5.x 版本开始 Docker Redis 改变了思路:你可以将配置文件放在任意位置,然后在 Redis 启动时告诉 Redis 从哪里加载配置文件即可。因此你想要配置容器内的 Redis,那么你需要在宿主机中准备好一个配置文件,然后映射到容器中的任意位置,然后将这个「任意位置」告诉容器中的 Redis
- 如果docker -d启动redis容器,redis.conf不要配置守护进程启动,会造成无法正常启动redis,并且没有启动日志,因为docker启动参数跟redis.conf配置冲突了。
- 如果配置了Redis,客户端可连,但是Spring Boot不可以,就将配置文件中的password改完auth