-
在Docker Hub上搜索Redis镜像
-
在Tags中查找对应版本,复制命令并执行
docker pull redis:5.0.10
-
启动基本服务实例
docker run -p 宿主机端口:6379 --name 容器名 -d redis:5.0.10
-
开启Redis AOF持久化
Redis持久化有两种,其中快照持久化是默认开启的,但是Docker官方认为Redis的快照持久化没有什么用,所以官方在Description中对快照持久化没有说明,
dump.rdb
文件在Redis中也没有。官方提供了AOF持久化。
docker run -p 宿主机端口:6379 --name 容器名 -d redis:5.0.10 redis-server --appendonly yes
-
查询
appendonly.aof
文件位置开启AOF后,Redis会生成一个
appendonly.aof
持久化文件,我们需要找到该文件在容器中的路径:/data
-
使用数据卷将数据持久化到宿主机
需要将
appendonly.aof
持久化文件持久化到宿主机中:docker run -p 宿主机端口:6379 --name 容器名 -d -v 数据卷名称:/data redis:5.0.10 redis-server --appendonly yes
-
如果想要修改Redis配置文件,让Redis按照新配置文件运行
Redis镜像中是不含有
redis.conf
配置文件的,所有的默认配置信息都在redis-sever
指令中。有两种解决方案:
-
Dockerfile
FROM redis COPY redis.conf /usr/local/etc/redis/redis.conf CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
-
从
redis-5.0.10.tar.gz
的包中,获取配置文件,并上传到宿主机中的某一个目录因为
redis.conf
中配置的访问IP只能是127.0.0.1
,所以需要修改redis.conf
配置文件将
redis.conf
存放在宿主机中的目录与容器中/usr/local/etc/redis
挂载数据卷最后启动Redis时,需要在
redis-server
命令之后加上/usr/local/etc/redis/redis.conf
,Redis在启动时就会去加载redis.conf
中配置的信息了。docker run -p 宿主机端口:6379 --name 容器名 -d -v redis.conf在宿主机的目录:/usr/local/etc/redis redis:5.0.10 redis-server /usr/local/etc/redis/redis.conf
其实在这里,无需非要拿到完整的配置文件,我随便建一个文件,内容为"bind 0.0.0.0",然后将该文件的路径替换掉上面命令中的 "redis.conf在宿主机的目录",该配置照样能生效。
现在Docker中提供的很多镜像都没有携带配置文件,我们需要修改什么配置,只需要单独创建一个文件,遵循原格式把需要修改的配置写到文件中即可。文件名可以自定义,只需提供文件的路径,然后该文件中写的配置就会自动覆盖掉原配置信息中的对应配置。
-