文章目录
一,拉取Redis镜像
1,搜索Redis的Docker镜像
下载镜像前可以先查询镜像仓库有哪些镜像,执行如下命令查询Redis镜像。
docker search redis
当然去Docker Hub搜索能看到更详细的信息。
2,拉取Redis镜像
docker pull redis
如上命令表示把标签为Redis镜像拉取到本地。
- docker pull 表示从镜像仓库拉取镜像
- redis 我们在拉取mysql镜像时指定了标签为5.7,此处拉取redis没有指定标签,将会拉取最新版本的redis镜像
如果拉取的速度非常慢,把docker的yum源设置为阿里云,速度会大幅提升。参考文献
3,查看已经拉取的镜像
docker images
二,创建、启动Redis容器
1,创建redis配置文件
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
这一步非常重要,下一步会把redis的配置文件挂到这个目录,如果不事先创建配置文件,创建容器时会把redis.conf作为文件夹而不是配置文件
。
2,创建及运行Redis容器
使用docker run创建启动容器。
docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
以下是给定的 docker run
命令的详细解释,以列表形式展示每个参数的作用:
①. docker run
- 启动一个新的 Docker 容器。
②. -p 6379:6379
- 执行端口映射,将宿主机的 6379 端口映射到容器内的 6379 端口,使外部可以访问容器内的 Redis 服务。
③. --name redis
- 为容器指定一个名字,命名为
redis
,方便后续管理和识别。
④. -v /mydata/redis/data:/data
- 进行目录挂载,将宿主机上的
/mydata/redis/data
目录挂载到容器内的/data
目录。这样做是为了实现数据的持久化,容器内的数据文件(如 RDB 或 AOF)将保存在宿主机的这个目录下。
⑤. -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf
- 另一个目录挂载,将宿主机上的
/mydata/redis/conf/redis.conf
文件挂载到容器内的/etc/redis/redis.conf
。这意味着容器内的 Redis 将使用宿主机提供的配置文件运行,允许用户自定义配置,如持久化策略、密码保护等。
⑥. -d
- 设置容器在后台(守护进程模式)运行,不会阻塞当前的 shell 会话。
⑦. redis
- 指定容器使用的 Docker 镜像名称,这里是官方的 Redis 镜像。
⑧. redis-server /etc/redis/redis.conf
- 指定容器启动时执行的命令。
redis-server
是 Redis 的服务启动脚本,后面跟的/etc/redis/redis.conf
是容器内 Redis 的配置文件路径。因为使用了-v
参数挂载了自定义配置文件,所以这里实际上使用的是宿主机提供的配置文件来启动 Redis 服务。
3,使用docker ps查看运行状态的容器
docker ps
可以看到一个名为redis的容器正在运行。
4,验证容器是否可用
使用docker命令进入mysql命令行客户端
docker exec -it redis redis-cli
如下,可以连接到redis的命令行工具,执行读写数据的命令。
说明redis安装成功。
三,修改Redis配置文件
在上一步,我们向Redis写入一条数据,key是a,value是b
,也能正常读出数据。
但是,如果执行如下命令重启redis容器。
docker restart redis
重启完成后,发现写入的数据无法查询,原因是根据redis默认的配置,数据仅仅存储在内存,重启后数据会丢失。
绝大多数场景下,需要把Redis中的数据持久化到磁盘,这需要修改一个配置。
修改过程很简单,执行如下命令:
vim /mydata/redis/conf/redis.conf
然后向这个打开的配置文件写入如下配置:
appendonly yes
保存,然后重启Redis。
之后写入的数据都会持久化到磁盘,重启Redis也不会丢数据。
标签:11,容器,redis,Redis,conf,镜像,docker From: https://blog.csdn.net/epitomizelu/article/details/140204631